
// this is autogenerated file, do not edit it.
#include "ficus/ficus.h"

struct _fx_N14K_form__ktyp_t_data_t;

static void _fx_free_N14K_form__ktyp_t(struct _fx_N14K_form__ktyp_t_data_t** dst);

struct _fx_N14C_form__ctyp_t_data_t;

static void _fx_free_N14C_form__ctyp_t(struct _fx_N14C_form__ctyp_t_data_t** dst);

struct _fx_N14C_form__cexp_t_data_t;

static void _fx_free_N14C_form__cexp_t(struct _fx_N14C_form__cexp_t_data_t** dst);

struct _fx_N15C_form__cstmt_t_data_t;

static void _fx_free_N15C_form__cstmt_t(struct _fx_N15C_form__cstmt_t_data_t** dst);

typedef struct _fx_Ta2i {
   int_ t0;
   int_ t1;
} _fx_Ta2i;

typedef struct _fx_T2Ta2iS {
   struct _fx_Ta2i t0;
   fx_str_t t1;
} _fx_T2Ta2iS;

typedef struct _fx_R9Ast__id_t {
   int_ m;
   int_ i;
   int_ j;
} _fx_R9Ast__id_t;

typedef struct _fx_R10Ast__loc_t {
   int_ m_idx;
   int_ line0;
   int_ col0;
   int_ line1;
   int_ col1;
} _fx_R10Ast__loc_t;

typedef struct _fx_T2R9Ast__id_ti {
   struct _fx_R9Ast__id_t t0;
   int_ t1;
} _fx_T2R9Ast__id_ti;

typedef struct _fx_T2Bi {
   bool t0;
   int_ t1;
} _fx_T2Bi;

typedef struct _fx_N12Ast__scope_t {
   int tag;
   union {
      int_ ScBlock;
      struct _fx_T2Bi ScLoop;
      int_ ScFold;
      int_ ScArrMap;
      int_ ScMap;
      int_ ScTry;
      struct _fx_R9Ast__id_t ScFun;
      struct _fx_R9Ast__id_t ScClass;
      struct _fx_R9Ast__id_t ScInterface;
      int_ ScModule;
   } u;
} _fx_N12Ast__scope_t;

typedef struct _fx_LN12Ast__scope_t_data_t {
   int_ rc;
   struct _fx_LN12Ast__scope_t_data_t* tl;
   struct _fx_N12Ast__scope_t hd;
} _fx_LN12Ast__scope_t_data_t, *_fx_LN12Ast__scope_t;

typedef struct _fx_R16Ast__val_flags_t {
   bool val_flag_arg;
   bool val_flag_mutable;
   bool val_flag_temp;
   bool val_flag_tempref;
   bool val_flag_private;
   bool val_flag_subarray;
   bool val_flag_instance;
   struct _fx_T2R9Ast__id_ti val_flag_method;
   int_ val_flag_ctor;
   struct _fx_LN12Ast__scope_t_data_t* val_flag_global;
} _fx_R16Ast__val_flags_t;

typedef struct _fx_R17C_form__cdefval_t {
   struct _fx_R9Ast__id_t cv_name;
   struct _fx_N14C_form__ctyp_t_data_t* cv_typ;
   fx_str_t cv_cname;
   struct _fx_R16Ast__val_flags_t cv_flags;
   struct _fx_R10Ast__loc_t cv_loc;
} _fx_R17C_form__cdefval_t;

typedef struct _fx_R19C_form__cdeflabel_t {
   struct _fx_R9Ast__id_t cl_name;
   fx_str_t cl_cname;
   struct _fx_R10Ast__loc_t cl_loc;
} _fx_R19C_form__cdeflabel_t;

typedef struct _fx_T2R9Ast__id_tN14C_form__ctyp_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
} _fx_T2R9Ast__id_tN14C_form__ctyp_t;

typedef struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t {
   int_ rc;
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* tl;
   struct _fx_T2R9Ast__id_tN14C_form__ctyp_t hd;
} _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t, *_fx_LT2R9Ast__id_tN14C_form__ctyp_t;

typedef struct _fx_R23C_form__cdefinterface_t {
   struct _fx_R9Ast__id_t ci_name;
   fx_str_t ci_cname;
   struct _fx_R9Ast__id_t ci_id;
   struct _fx_R9Ast__id_t ci_vtbl;
   struct _fx_R9Ast__id_t ci_base;
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* ci_all_methods;
   struct _fx_LN12Ast__scope_t_data_t* ci_scope;
   struct _fx_R10Ast__loc_t ci_loc;
} _fx_R23C_form__cdefinterface_t;

typedef struct _fx_rR23C_form__cdefinterface_t_data_t {
   int_ rc;
   struct _fx_R23C_form__cdefinterface_t data;
} _fx_rR23C_form__cdefinterface_t_data_t, *_fx_rR23C_form__cdefinterface_t;

typedef struct _fx_N17Ast__fun_constr_t {
   int tag;
   union {
      int_ CtorVariant;
      struct _fx_R9Ast__id_t CtorFP;
      struct _fx_R9Ast__id_t CtorExn;
   } u;
} _fx_N17Ast__fun_constr_t;

typedef struct _fx_R16Ast__fun_flags_t {
   int_ fun_flag_pure;
   bool fun_flag_ccode;
   bool fun_flag_have_keywords;
   bool fun_flag_inline;
   bool fun_flag_nothrow;
   bool fun_flag_really_nothrow;
   bool fun_flag_private;
   struct _fx_N17Ast__fun_constr_t fun_flag_ctor;
   struct _fx_R9Ast__id_t fun_flag_method_of;
   bool fun_flag_uses_fv;
   bool fun_flag_recursive;
   bool fun_flag_instance;
} _fx_R16Ast__fun_flags_t;

typedef struct _fx_LN15C_form__cstmt_t_data_t {
   int_ rc;
   struct _fx_LN15C_form__cstmt_t_data_t* tl;
   struct _fx_N15C_form__cstmt_t_data_t* hd;
} _fx_LN15C_form__cstmt_t_data_t, *_fx_LN15C_form__cstmt_t;

typedef struct _fx_N19C_form__carg_attr_t {
   int tag;
} _fx_N19C_form__carg_attr_t;

typedef struct _fx_LN19C_form__carg_attr_t_data_t {
   int_ rc;
   struct _fx_LN19C_form__carg_attr_t_data_t* tl;
   struct _fx_N19C_form__carg_attr_t hd;
} _fx_LN19C_form__carg_attr_t_data_t, *_fx_LN19C_form__carg_attr_t;

typedef struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
   struct _fx_LN19C_form__carg_attr_t_data_t* t2;
} _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t;

typedef struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t {
   int_ rc;
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* tl;
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t hd;
} _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t, *_fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t;

typedef struct _fx_R17C_form__cdeffun_t {
   struct _fx_R9Ast__id_t cf_name;
   fx_str_t cf_cname;
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* cf_args;
   struct _fx_N14C_form__ctyp_t_data_t* cf_rt;
   struct _fx_LN15C_form__cstmt_t_data_t* cf_body;
   struct _fx_R16Ast__fun_flags_t cf_flags;
   struct _fx_LN12Ast__scope_t_data_t* cf_scope;
   struct _fx_R10Ast__loc_t cf_loc;
} _fx_R17C_form__cdeffun_t;

typedef struct _fx_rR17C_form__cdeffun_t_data_t {
   int_ rc;
   struct _fx_R17C_form__cdeffun_t data;
} _fx_rR17C_form__cdeffun_t_data_t, *_fx_rR17C_form__cdeffun_t;

typedef struct _fx_Ta2R9Ast__id_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_R9Ast__id_t t1;
} _fx_Ta2R9Ast__id_t;

typedef struct _fx_LR9Ast__id_t_data_t {
   int_ rc;
   struct _fx_LR9Ast__id_t_data_t* tl;
   struct _fx_R9Ast__id_t hd;
} _fx_LR9Ast__id_t_data_t, *_fx_LR9Ast__id_t;

typedef struct _fx_R17C_form__ctprops_t {
   bool ctp_scalar;
   bool ctp_complex;
   bool ctp_ptr;
   bool ctp_pass_by_ref;
   struct _fx_LR9Ast__id_t_data_t* ctp_make;
   struct _fx_Ta2R9Ast__id_t ctp_free;
   struct _fx_Ta2R9Ast__id_t ctp_copy;
} _fx_R17C_form__ctprops_t;

typedef struct _fx_R17C_form__cdeftyp_t {
   struct _fx_R9Ast__id_t ct_name;
   struct _fx_N14C_form__ctyp_t_data_t* ct_typ;
   fx_str_t ct_cname;
   struct _fx_R17C_form__ctprops_t ct_props;
   int_ ct_data_start;
   struct _fx_R9Ast__id_t ct_enum;
   struct _fx_LR9Ast__id_t_data_t* ct_ifaces;
   struct _fx_R9Ast__id_t ct_ifaces_id;
   struct _fx_LN12Ast__scope_t_data_t* ct_scope;
   struct _fx_R10Ast__loc_t ct_loc;
} _fx_R17C_form__cdeftyp_t;

typedef struct _fx_rR17C_form__cdeftyp_t_data_t {
   int_ rc;
   struct _fx_R17C_form__cdeftyp_t data;
} _fx_rR17C_form__cdeftyp_t_data_t, *_fx_rR17C_form__cdeftyp_t;

typedef struct _fx_Nt6option1N14C_form__cexp_t {
   int tag;
   union {
      struct _fx_N14C_form__cexp_t_data_t* Some;
   } u;
} _fx_Nt6option1N14C_form__cexp_t;

typedef struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_Nt6option1N14C_form__cexp_t t1;
} _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t;

typedef struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t {
   int_ rc;
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t* tl;
   struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t hd;
} _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t, *_fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t;

typedef struct _fx_R18C_form__cdefenum_t {
   struct _fx_R9Ast__id_t cenum_name;
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t* cenum_members;
   fx_str_t cenum_cname;
   struct _fx_LN12Ast__scope_t_data_t* cenum_scope;
   struct _fx_R10Ast__loc_t cenum_loc;
} _fx_R18C_form__cdefenum_t;

typedef struct _fx_rR18C_form__cdefenum_t_data_t {
   int_ rc;
   struct _fx_R18C_form__cdefenum_t data;
} _fx_rR18C_form__cdefenum_t_data_t, *_fx_rR18C_form__cdefenum_t;

typedef struct _fx_R19C_form__cdefmacro_t {
   struct _fx_R9Ast__id_t cm_name;
   fx_str_t cm_cname;
   struct _fx_LR9Ast__id_t_data_t* cm_args;
   struct _fx_LN15C_form__cstmt_t_data_t* cm_body;
   struct _fx_LN12Ast__scope_t_data_t* cm_scope;
   struct _fx_R10Ast__loc_t cm_loc;
} _fx_R19C_form__cdefmacro_t;

typedef struct _fx_rR19C_form__cdefmacro_t_data_t {
   int_ rc;
   struct _fx_R19C_form__cdefmacro_t data;
} _fx_rR19C_form__cdefmacro_t_data_t, *_fx_rR19C_form__cdefmacro_t;

typedef struct _fx_R17C_form__cdefexn_t {
   struct _fx_R9Ast__id_t cexn_name;
   fx_str_t cexn_cname;
   fx_str_t cexn_base_cname;
   struct _fx_N14C_form__ctyp_t_data_t* cexn_typ;
   bool cexn_std;
   struct _fx_R9Ast__id_t cexn_tag;
   struct _fx_R9Ast__id_t cexn_data;
   struct _fx_R9Ast__id_t cexn_info;
   struct _fx_R9Ast__id_t cexn_make;
   struct _fx_LN12Ast__scope_t_data_t* cexn_scope;
   struct _fx_R10Ast__loc_t cexn_loc;
} _fx_R17C_form__cdefexn_t;

typedef struct _fx_rR17C_form__cdefexn_t_data_t {
   int_ rc;
   struct _fx_R17C_form__cdefexn_t data;
} _fx_rR17C_form__cdefexn_t_data_t, *_fx_rR17C_form__cdefexn_t;

typedef struct _fx_N15C_form__cinfo_t {
   int tag;
   union {
      struct _fx_R17C_form__cdefval_t CVal;
      struct _fx_rR17C_form__cdeffun_t_data_t* CFun;
      struct _fx_rR17C_form__cdeftyp_t_data_t* CTyp;
      struct _fx_rR17C_form__cdefexn_t_data_t* CExn;
      struct _fx_rR23C_form__cdefinterface_t_data_t* CInterface;
      struct _fx_rR18C_form__cdefenum_t_data_t* CEnum;
      struct _fx_R19C_form__cdeflabel_t CLabel;
      struct _fx_rR19C_form__cdefmacro_t_data_t* CMacro;
   } u;
} _fx_N15C_form__cinfo_t;

typedef struct _fx_T2R9Ast__id_tN14K_form__ktyp_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_N14K_form__ktyp_t_data_t* t1;
} _fx_T2R9Ast__id_tN14K_form__ktyp_t;

typedef struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t {
   int_ rc;
   struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* tl;
   struct _fx_T2R9Ast__id_tN14K_form__ktyp_t hd;
} _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t, *_fx_LT2R9Ast__id_tN14K_form__ktyp_t;

typedef struct _fx_LN14K_form__ktyp_t_data_t {
   int_ rc;
   struct _fx_LN14K_form__ktyp_t_data_t* tl;
   struct _fx_N14K_form__ktyp_t_data_t* hd;
} _fx_LN14K_form__ktyp_t_data_t, *_fx_LN14K_form__ktyp_t;

typedef struct _fx_T2R10Ast__loc_tS {
   struct _fx_R10Ast__loc_t t0;
   fx_str_t t1;
} _fx_T2R10Ast__loc_tS;

typedef struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t {
   struct _fx_LN14K_form__ktyp_t_data_t* t0;
   struct _fx_N14K_form__ktyp_t_data_t* t1;
} _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t;

typedef struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* t1;
} _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t;

typedef struct _fx_T2iN14K_form__ktyp_t {
   int_ t0;
   struct _fx_N14K_form__ktyp_t_data_t* t1;
} _fx_T2iN14K_form__ktyp_t;

typedef struct _fx_N14K_form__ktyp_t_data_t {
   int_ rc;
   int tag;
   union {
      int_ KTypSInt;
      int_ KTypUInt;
      int_ KTypFloat;
      struct _fx_N14K_form__ktyp_t_data_t* KTypRawPointer;
      struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t KTypFun;
      struct _fx_LN14K_form__ktyp_t_data_t* KTypTuple;
      struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t KTypRecord;
      struct _fx_R9Ast__id_t KTypName;
      struct _fx_T2iN14K_form__ktyp_t KTypArray;
      struct _fx_N14K_form__ktyp_t_data_t* KTypVector;
      struct _fx_N14K_form__ktyp_t_data_t* KTypList;
      struct _fx_N14K_form__ktyp_t_data_t* KTypRef;
   } u;
} _fx_N14K_form__ktyp_t_data_t, *_fx_N14K_form__ktyp_t;

typedef struct _fx_Nt6option1N14C_form__ctyp_t {
   int tag;
   union {
      struct _fx_N14C_form__ctyp_t_data_t* Some;
   } u;
} _fx_Nt6option1N14C_form__ctyp_t;

typedef struct _fx_T2il {
   int_ t0;
   int64_t t1;
} _fx_T2il;

typedef struct _fx_T2iq {
   int_ t0;
   uint64_t t1;
} _fx_T2iq;

typedef struct _fx_T2id {
   int_ t0;
   double t1;
} _fx_T2id;

typedef struct _fx_N14K_form__klit_t {
   int tag;
   union {
      int64_t KLitInt;
      struct _fx_T2il KLitSInt;
      struct _fx_T2iq KLitUInt;
      struct _fx_T2id KLitFloat;
      fx_str_t KLitString;
      char_ KLitChar;
      bool KLitBool;
      struct _fx_N14K_form__ktyp_t_data_t* KLitNil;
   } u;
} _fx_N14K_form__klit_t;

typedef struct _fx_Nt6option1R9Ast__id_t {
   int tag;
   union {
      struct _fx_R9Ast__id_t Some;
   } u;
} _fx_Nt6option1R9Ast__id_t;

typedef struct _fx_N12Ast__cmpop_t {
   int tag;
} _fx_N12Ast__cmpop_t;

typedef struct _fx_T2R9Ast__id_tR10Ast__loc_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_R10Ast__loc_t t1;
} _fx_T2R9Ast__id_tR10Ast__loc_t;

typedef struct _fx_T2SR10Ast__loc_t {
   fx_str_t t0;
   struct _fx_R10Ast__loc_t t1;
} _fx_T2SR10Ast__loc_t;

typedef struct _fx_N17C_form__cbinary_t {
   int tag;
   union {
      struct _fx_N12Ast__cmpop_t COpCmp;
   } u;
} _fx_N17C_form__cbinary_t;

typedef struct _fx_N16C_form__cunary_t {
   int tag;
} _fx_N16C_form__cunary_t;

typedef struct _fx_N19C_form__ctyp_attr_t {
   int tag;
} _fx_N19C_form__ctyp_attr_t;

typedef struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t {
   struct _fx_Nt6option1R9Ast__id_t t0;
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t1;
} _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t;

typedef struct _fx_LN14C_form__ctyp_t_data_t {
   int_ rc;
   struct _fx_LN14C_form__ctyp_t_data_t* tl;
   struct _fx_N14C_form__ctyp_t_data_t* hd;
} _fx_LN14C_form__ctyp_t_data_t, *_fx_LN14C_form__ctyp_t;

typedef struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t {
   struct _fx_LN14C_form__ctyp_t_data_t* t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
} _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t;

typedef struct _fx_LN19C_form__ctyp_attr_t_data_t {
   int_ rc;
   struct _fx_LN19C_form__ctyp_attr_t_data_t* tl;
   struct _fx_N19C_form__ctyp_attr_t hd;
} _fx_LN19C_form__ctyp_attr_t_data_t, *_fx_LN19C_form__ctyp_attr_t;

typedef struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t {
   struct _fx_LN19C_form__ctyp_attr_t_data_t* t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
} _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t;

typedef struct _fx_T2iN14C_form__ctyp_t {
   int_ t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
} _fx_T2iN14C_form__ctyp_t;

typedef struct _fx_N14C_form__ctyp_t_data_t {
   int_ rc;
   int tag;
   union {
      int_ CTypSInt;
      int_ CTypUInt;
      int_ CTypFloat;
      struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t CTypStruct;
      struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t CTypUnion;
      struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t CTypFunRawPtr;
      struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t CTypRawPtr;
      struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t CTypRawArray;
      struct _fx_T2iN14C_form__ctyp_t CTypArray;
      struct _fx_N14C_form__ctyp_t_data_t* CTypVector;
      struct _fx_R9Ast__id_t CTypName;
   } u;
} _fx_N14C_form__ctyp_t_data_t, *_fx_N14C_form__ctyp_t;

typedef struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14C_form__ctyp_t_data_t* t0;
   struct _fx_R10Ast__loc_t t1;
} _fx_T2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t1;
} _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14K_form__klit_t t0;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t1;
} _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N17C_form__cbinary_t t0;
   struct _fx_N14C_form__cexp_t_data_t* t1;
   struct _fx_N14C_form__cexp_t_data_t* t2;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t3;
} _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N16C_form__cunary_t t0;
   struct _fx_N14C_form__cexp_t_data_t* t1;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t2;
} _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_R9Ast__id_t t1;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t2;
} _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_N14C_form__ctyp_t_data_t* t1;
   struct _fx_R10Ast__loc_t t2;
} _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_N14C_form__cexp_t_data_t* t1;
   struct _fx_N14C_form__cexp_t_data_t* t2;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t3;
} _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_LN14C_form__cexp_t_data_t {
   int_ rc;
   struct _fx_LN14C_form__cexp_t_data_t* tl;
   struct _fx_N14C_form__cexp_t_data_t* hd;
} _fx_LN14C_form__cexp_t_data_t, *_fx_LN14C_form__cexp_t;

typedef struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_LN14C_form__cexp_t_data_t* t1;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t2;
} _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t {
   struct _fx_LN14C_form__cexp_t_data_t* t0;
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t t1;
} _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t;

typedef struct _fx_N14C_form__cexp_t_data_t {
   int_ rc;
   int tag;
   union {
      struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t CExpIdent;
      struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t CExpLit;
      struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t CExpBinary;
      struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t CExpUnary;
      struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t CExpMem;
      struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t CExpArrow;
      struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t CExpCast;
      struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t CExpTernary;
      struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t CExpCall;
      struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t CExpInit;
      struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t CExpTyp;
      struct _fx_T2SR10Ast__loc_t CExpCCode;
   } u;
} _fx_N14C_form__cexp_t_data_t, *_fx_N14C_form__cexp_t;

typedef struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t {
   struct _fx_Nt6option1N14C_form__cexp_t t0;
   struct _fx_R10Ast__loc_t t1;
} _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t;

typedef struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_LN15C_form__cstmt_t_data_t* t0;
   struct _fx_R10Ast__loc_t t1;
} _fx_T2LN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_T2R9Ast__id_tN15C_form__cstmt_t {
   struct _fx_R9Ast__id_t t0;
   struct _fx_N15C_form__cstmt_t_data_t* t1;
} _fx_T2R9Ast__id_tN15C_form__cstmt_t;

typedef struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_N15C_form__cstmt_t_data_t* t1;
   struct _fx_N15C_form__cstmt_t_data_t* t2;
   struct _fx_R10Ast__loc_t t3;
} _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_Nt6option1N14C_form__ctyp_t t0;
   struct _fx_LN14C_form__cexp_t_data_t* t1;
   struct _fx_Nt6option1N14C_form__cexp_t t2;
   struct _fx_LN14C_form__cexp_t_data_t* t3;
   struct _fx_N15C_form__cstmt_t_data_t* t4;
   struct _fx_R10Ast__loc_t t5;
} _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_N15C_form__cstmt_t_data_t* t1;
   struct _fx_R10Ast__loc_t t2;
} _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t {
   struct _fx_N15C_form__cstmt_t_data_t* t0;
   struct _fx_N14C_form__cexp_t_data_t* t1;
   struct _fx_R10Ast__loc_t t2;
} _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t;

typedef struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t {
   struct _fx_LN14C_form__cexp_t_data_t* t0;
   struct _fx_LN15C_form__cstmt_t_data_t* t1;
} _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t;

typedef struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t {
   int_ rc;
   struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* tl;
   struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t hd;
} _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t, *_fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t;

typedef struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t1;
   struct _fx_R10Ast__loc_t t2;
} _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t {
   struct _fx_N14C_form__ctyp_t_data_t* t0;
   struct _fx_R9Ast__id_t t1;
   struct _fx_Nt6option1N14C_form__cexp_t t2;
   struct _fx_R10Ast__loc_t t3;
} _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t;

typedef struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t {
   struct _fx_N14C_form__cexp_t_data_t* t0;
   struct _fx_LN15C_form__cstmt_t_data_t* t1;
} _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t;

typedef struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t {
   int_ rc;
   struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t* tl;
   struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t hd;
} _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t, *_fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t;

typedef struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t {
   struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t* t0;
   struct _fx_LN15C_form__cstmt_t_data_t* t1;
   struct _fx_R10Ast__loc_t t2;
} _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t;

typedef struct _fx_N15C_form__cstmt_t_data_t {
   int_ rc;
   int tag;
   union {
      struct _fx_R10Ast__loc_t CStmtNop;
      struct _fx_T2SR10Ast__loc_t CComment;
      struct _fx_N14C_form__cexp_t_data_t* CExp;
      struct _fx_R10Ast__loc_t CStmtBreak;
      struct _fx_R10Ast__loc_t CStmtContinue;
      struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t CStmtReturn;
      struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t CStmtBlock;
      struct _fx_T2R9Ast__id_tN15C_form__cstmt_t CStmtSync;
      struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t CStmtIf;
      struct _fx_T2R9Ast__id_tR10Ast__loc_t CStmtGoto;
      struct _fx_T2R9Ast__id_tR10Ast__loc_t CStmtLabel;
      struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t
         CStmtFor;
      struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t CStmtWhile;
      struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t CStmtDoWhile;
      struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t CStmtSwitch;
      struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t CDefVal;
      struct _fx_rR17C_form__cdeffun_t_data_t* CDefFun;
      struct _fx_rR17C_form__cdeftyp_t_data_t* CDefTyp;
      struct _fx_T2R9Ast__id_tR10Ast__loc_t CDefForwardSym;
      struct _fx_T2R9Ast__id_tR10Ast__loc_t CDefForwardTyp;
      struct _fx_rR18C_form__cdefenum_t_data_t* CDefEnum;
      struct _fx_rR23C_form__cdefinterface_t_data_t* CDefInterface;
      struct _fx_rR19C_form__cdefmacro_t_data_t* CMacroDef;
      struct _fx_T2R9Ast__id_tR10Ast__loc_t CMacroUndef;
      struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t CMacroIf;
      struct _fx_T2SR10Ast__loc_t CMacroInclude;
      struct _fx_T2SR10Ast__loc_t CMacroPragma;
   } u;
} _fx_N15C_form__cstmt_t_data_t, *_fx_N15C_form__cstmt_t;

typedef struct {
   int_ rc;
   int_ data;
} _fx_E4Exit_data_t;

typedef struct {
   int_ rc;
   fx_str_t data;
} _fx_E4Fail_data_t;

typedef struct {
   int_ rc;
   struct _fx_T2Ta2iS data;
} _fx_E22LexerUtils__LexerError_data_t;

typedef struct {
   int_ rc;
   struct _fx_T2R10Ast__loc_tS data;
} _fx_E17Ast__CompileError_data_t;

typedef struct {
   int_ rc;
   struct _fx_T2R10Ast__loc_tS data;
} _fx_E18Parser__ParseError_data_t;

static void _fx_free_T2Ta2iS(struct _fx_T2Ta2iS* dst)
{
   fx_free_str(&dst->t1);
}

static void _fx_copy_T2Ta2iS(struct _fx_T2Ta2iS* src, struct _fx_T2Ta2iS* dst)
{
   dst->t0 = src->t0;
   fx_copy_str(&src->t1, &dst->t1);
}

static void _fx_make_T2Ta2iS(struct _fx_Ta2i* t0, fx_str_t* t1, struct _fx_T2Ta2iS* fx_result)
{
   fx_result->t0 = *t0;
   fx_copy_str(t1, &fx_result->t1);
}

static int _fx_cons_LN12Ast__scope_t(
   struct _fx_N12Ast__scope_t* hd,
   struct _fx_LN12Ast__scope_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN12Ast__scope_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN12Ast__scope_t, FX_COPY_SIMPLE_BY_PTR);
}

static void _fx_free_R16Ast__val_flags_t(struct _fx_R16Ast__val_flags_t* dst)
{
   fx_free_list_simple(&dst->val_flag_global);
}

static void _fx_copy_R16Ast__val_flags_t(struct _fx_R16Ast__val_flags_t* src, struct _fx_R16Ast__val_flags_t* dst)
{
   dst->val_flag_arg = src->val_flag_arg;
   dst->val_flag_mutable = src->val_flag_mutable;
   dst->val_flag_temp = src->val_flag_temp;
   dst->val_flag_tempref = src->val_flag_tempref;
   dst->val_flag_private = src->val_flag_private;
   dst->val_flag_subarray = src->val_flag_subarray;
   dst->val_flag_instance = src->val_flag_instance;
   dst->val_flag_method = src->val_flag_method;
   dst->val_flag_ctor = src->val_flag_ctor;
   FX_COPY_PTR(src->val_flag_global, &dst->val_flag_global);
}

static void _fx_make_R16Ast__val_flags_t(
   bool r_val_flag_arg,
   bool r_val_flag_mutable,
   bool r_val_flag_temp,
   bool r_val_flag_tempref,
   bool r_val_flag_private,
   bool r_val_flag_subarray,
   bool r_val_flag_instance,
   struct _fx_T2R9Ast__id_ti* r_val_flag_method,
   int_ r_val_flag_ctor,
   struct _fx_LN12Ast__scope_t_data_t* r_val_flag_global,
   struct _fx_R16Ast__val_flags_t* fx_result)
{
   fx_result->val_flag_arg = r_val_flag_arg;
   fx_result->val_flag_mutable = r_val_flag_mutable;
   fx_result->val_flag_temp = r_val_flag_temp;
   fx_result->val_flag_tempref = r_val_flag_tempref;
   fx_result->val_flag_private = r_val_flag_private;
   fx_result->val_flag_subarray = r_val_flag_subarray;
   fx_result->val_flag_instance = r_val_flag_instance;
   fx_result->val_flag_method = *r_val_flag_method;
   fx_result->val_flag_ctor = r_val_flag_ctor;
   FX_COPY_PTR(r_val_flag_global, &fx_result->val_flag_global);
}

static void _fx_free_R17C_form__cdefval_t(struct _fx_R17C_form__cdefval_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->cv_typ);
   fx_free_str(&dst->cv_cname);
   _fx_free_R16Ast__val_flags_t(&dst->cv_flags);
}

static void _fx_copy_R17C_form__cdefval_t(struct _fx_R17C_form__cdefval_t* src, struct _fx_R17C_form__cdefval_t* dst)
{
   dst->cv_name = src->cv_name;
   FX_COPY_PTR(src->cv_typ, &dst->cv_typ);
   fx_copy_str(&src->cv_cname, &dst->cv_cname);
   _fx_copy_R16Ast__val_flags_t(&src->cv_flags, &dst->cv_flags);
   dst->cv_loc = src->cv_loc;
}

static void _fx_make_R17C_form__cdefval_t(
   struct _fx_R9Ast__id_t* r_cv_name,
   struct _fx_N14C_form__ctyp_t_data_t* r_cv_typ,
   fx_str_t* r_cv_cname,
   struct _fx_R16Ast__val_flags_t* r_cv_flags,
   struct _fx_R10Ast__loc_t* r_cv_loc,
   struct _fx_R17C_form__cdefval_t* fx_result)
{
   fx_result->cv_name = *r_cv_name;
   FX_COPY_PTR(r_cv_typ, &fx_result->cv_typ);
   fx_copy_str(r_cv_cname, &fx_result->cv_cname);
   _fx_copy_R16Ast__val_flags_t(r_cv_flags, &fx_result->cv_flags);
   fx_result->cv_loc = *r_cv_loc;
}

static void _fx_free_R19C_form__cdeflabel_t(struct _fx_R19C_form__cdeflabel_t* dst)
{
   fx_free_str(&dst->cl_cname);
}

static void _fx_copy_R19C_form__cdeflabel_t(struct _fx_R19C_form__cdeflabel_t* src, struct _fx_R19C_form__cdeflabel_t* dst)
{
   dst->cl_name = src->cl_name;
   fx_copy_str(&src->cl_cname, &dst->cl_cname);
   dst->cl_loc = src->cl_loc;
}

static void _fx_make_R19C_form__cdeflabel_t(
   struct _fx_R9Ast__id_t* r_cl_name,
   fx_str_t* r_cl_cname,
   struct _fx_R10Ast__loc_t* r_cl_loc,
   struct _fx_R19C_form__cdeflabel_t* fx_result)
{
   fx_result->cl_name = *r_cl_name;
   fx_copy_str(r_cl_cname, &fx_result->cl_cname);
   fx_result->cl_loc = *r_cl_loc;
}

static void _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(struct _fx_T2R9Ast__id_tN14C_form__ctyp_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_T2R9Ast__id_tN14C_form__ctyp_t* src,
   struct _fx_T2R9Ast__id_tN14C_form__ctyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_T2R9Ast__id_tN14C_form__ctyp_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT2R9Ast__id_tN14C_form__ctyp_t, _fx_free_T2R9Ast__id_tN14C_form__ctyp_t);
}

static int _fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_T2R9Ast__id_tN14C_form__ctyp_t* hd,
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT2R9Ast__id_tN14C_form__ctyp_t, _fx_copy_T2R9Ast__id_tN14C_form__ctyp_t);
}

static void _fx_free_R23C_form__cdefinterface_t(struct _fx_R23C_form__cdefinterface_t* dst)
{
   fx_free_str(&dst->ci_cname);
   _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&dst->ci_all_methods);
   fx_free_list_simple(&dst->ci_scope);
}

static void _fx_copy_R23C_form__cdefinterface_t(
   struct _fx_R23C_form__cdefinterface_t* src,
   struct _fx_R23C_form__cdefinterface_t* dst)
{
   dst->ci_name = src->ci_name;
   fx_copy_str(&src->ci_cname, &dst->ci_cname);
   dst->ci_id = src->ci_id;
   dst->ci_vtbl = src->ci_vtbl;
   dst->ci_base = src->ci_base;
   FX_COPY_PTR(src->ci_all_methods, &dst->ci_all_methods);
   FX_COPY_PTR(src->ci_scope, &dst->ci_scope);
   dst->ci_loc = src->ci_loc;
}

static void _fx_make_R23C_form__cdefinterface_t(
   struct _fx_R9Ast__id_t* r_ci_name,
   fx_str_t* r_ci_cname,
   struct _fx_R9Ast__id_t* r_ci_id,
   struct _fx_R9Ast__id_t* r_ci_vtbl,
   struct _fx_R9Ast__id_t* r_ci_base,
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* r_ci_all_methods,
   struct _fx_LN12Ast__scope_t_data_t* r_ci_scope,
   struct _fx_R10Ast__loc_t* r_ci_loc,
   struct _fx_R23C_form__cdefinterface_t* fx_result)
{
   fx_result->ci_name = *r_ci_name;
   fx_copy_str(r_ci_cname, &fx_result->ci_cname);
   fx_result->ci_id = *r_ci_id;
   fx_result->ci_vtbl = *r_ci_vtbl;
   fx_result->ci_base = *r_ci_base;
   FX_COPY_PTR(r_ci_all_methods, &fx_result->ci_all_methods);
   FX_COPY_PTR(r_ci_scope, &fx_result->ci_scope);
   fx_result->ci_loc = *r_ci_loc;
}

static void _fx_free_rR23C_form__cdefinterface_t(struct _fx_rR23C_form__cdefinterface_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR23C_form__cdefinterface_t, _fx_free_R23C_form__cdefinterface_t);
}

static int _fx_make_rR23C_form__cdefinterface_t(
   struct _fx_R23C_form__cdefinterface_t* arg,
   struct _fx_rR23C_form__cdefinterface_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR23C_form__cdefinterface_t, _fx_copy_R23C_form__cdefinterface_t);
}

static void _fx_free_LN15C_form__cstmt_t(struct _fx_LN15C_form__cstmt_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LN15C_form__cstmt_t, _fx_free_N15C_form__cstmt_t);
}

static int _fx_cons_LN15C_form__cstmt_t(
   struct _fx_N15C_form__cstmt_t_data_t* hd,
   struct _fx_LN15C_form__cstmt_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN15C_form__cstmt_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN15C_form__cstmt_t, FX_COPY_PTR);
}

static int _fx_cons_LN19C_form__carg_attr_t(
   struct _fx_N19C_form__carg_attr_t* hd,
   struct _fx_LN19C_form__carg_attr_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN19C_form__carg_attr_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN19C_form__carg_attr_t, FX_COPY_SIMPLE_BY_PTR);
}

static void _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->t1);
   fx_free_list_simple(&dst->t2);
}

static void _fx_copy_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* src,
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
   FX_COPY_PTR(src->t2, &dst->t2);
}

static void _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_LN19C_form__carg_attr_t_data_t* t2,
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
   FX_COPY_PTR(t2, &fx_result->t2);
}

static void _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t,
      _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t);
}

static int _fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(
   struct _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* hd,
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t,
      _fx_copy_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t);
}

static void _fx_free_R17C_form__cdeffun_t(struct _fx_R17C_form__cdeffun_t* dst)
{
   fx_free_str(&dst->cf_cname);
   _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&dst->cf_args);
   _fx_free_N14C_form__ctyp_t(&dst->cf_rt);
   _fx_free_LN15C_form__cstmt_t(&dst->cf_body);
   fx_free_list_simple(&dst->cf_scope);
}

static void _fx_copy_R17C_form__cdeffun_t(struct _fx_R17C_form__cdeffun_t* src, struct _fx_R17C_form__cdeffun_t* dst)
{
   dst->cf_name = src->cf_name;
   fx_copy_str(&src->cf_cname, &dst->cf_cname);
   FX_COPY_PTR(src->cf_args, &dst->cf_args);
   FX_COPY_PTR(src->cf_rt, &dst->cf_rt);
   FX_COPY_PTR(src->cf_body, &dst->cf_body);
   dst->cf_flags = src->cf_flags;
   FX_COPY_PTR(src->cf_scope, &dst->cf_scope);
   dst->cf_loc = src->cf_loc;
}

static void _fx_make_R17C_form__cdeffun_t(
   struct _fx_R9Ast__id_t* r_cf_name,
   fx_str_t* r_cf_cname,
   struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* r_cf_args,
   struct _fx_N14C_form__ctyp_t_data_t* r_cf_rt,
   struct _fx_LN15C_form__cstmt_t_data_t* r_cf_body,
   struct _fx_R16Ast__fun_flags_t* r_cf_flags,
   struct _fx_LN12Ast__scope_t_data_t* r_cf_scope,
   struct _fx_R10Ast__loc_t* r_cf_loc,
   struct _fx_R17C_form__cdeffun_t* fx_result)
{
   fx_result->cf_name = *r_cf_name;
   fx_copy_str(r_cf_cname, &fx_result->cf_cname);
   FX_COPY_PTR(r_cf_args, &fx_result->cf_args);
   FX_COPY_PTR(r_cf_rt, &fx_result->cf_rt);
   FX_COPY_PTR(r_cf_body, &fx_result->cf_body);
   fx_result->cf_flags = *r_cf_flags;
   FX_COPY_PTR(r_cf_scope, &fx_result->cf_scope);
   fx_result->cf_loc = *r_cf_loc;
}

static void _fx_free_rR17C_form__cdeffun_t(struct _fx_rR17C_form__cdeffun_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR17C_form__cdeffun_t, _fx_free_R17C_form__cdeffun_t);
}

static int _fx_make_rR17C_form__cdeffun_t(
   struct _fx_R17C_form__cdeffun_t* arg,
   struct _fx_rR17C_form__cdeffun_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR17C_form__cdeffun_t, _fx_copy_R17C_form__cdeffun_t);
}

static int _fx_cons_LR9Ast__id_t(
   struct _fx_R9Ast__id_t* hd,
   struct _fx_LR9Ast__id_t_data_t* tl,
   bool addref_tl,
   struct _fx_LR9Ast__id_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LR9Ast__id_t, FX_COPY_SIMPLE_BY_PTR);
}

static void _fx_free_R17C_form__ctprops_t(struct _fx_R17C_form__ctprops_t* dst)
{
   fx_free_list_simple(&dst->ctp_make);
}

static void _fx_copy_R17C_form__ctprops_t(struct _fx_R17C_form__ctprops_t* src, struct _fx_R17C_form__ctprops_t* dst)
{
   dst->ctp_scalar = src->ctp_scalar;
   dst->ctp_complex = src->ctp_complex;
   dst->ctp_ptr = src->ctp_ptr;
   dst->ctp_pass_by_ref = src->ctp_pass_by_ref;
   FX_COPY_PTR(src->ctp_make, &dst->ctp_make);
   dst->ctp_free = src->ctp_free;
   dst->ctp_copy = src->ctp_copy;
}

static void _fx_make_R17C_form__ctprops_t(
   bool r_ctp_scalar,
   bool r_ctp_complex,
   bool r_ctp_ptr,
   bool r_ctp_pass_by_ref,
   struct _fx_LR9Ast__id_t_data_t* r_ctp_make,
   struct _fx_Ta2R9Ast__id_t* r_ctp_free,
   struct _fx_Ta2R9Ast__id_t* r_ctp_copy,
   struct _fx_R17C_form__ctprops_t* fx_result)
{
   fx_result->ctp_scalar = r_ctp_scalar;
   fx_result->ctp_complex = r_ctp_complex;
   fx_result->ctp_ptr = r_ctp_ptr;
   fx_result->ctp_pass_by_ref = r_ctp_pass_by_ref;
   FX_COPY_PTR(r_ctp_make, &fx_result->ctp_make);
   fx_result->ctp_free = *r_ctp_free;
   fx_result->ctp_copy = *r_ctp_copy;
}

static void _fx_free_R17C_form__cdeftyp_t(struct _fx_R17C_form__cdeftyp_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->ct_typ);
   fx_free_str(&dst->ct_cname);
   _fx_free_R17C_form__ctprops_t(&dst->ct_props);
   fx_free_list_simple(&dst->ct_ifaces);
   fx_free_list_simple(&dst->ct_scope);
}

static void _fx_copy_R17C_form__cdeftyp_t(struct _fx_R17C_form__cdeftyp_t* src, struct _fx_R17C_form__cdeftyp_t* dst)
{
   dst->ct_name = src->ct_name;
   FX_COPY_PTR(src->ct_typ, &dst->ct_typ);
   fx_copy_str(&src->ct_cname, &dst->ct_cname);
   _fx_copy_R17C_form__ctprops_t(&src->ct_props, &dst->ct_props);
   dst->ct_data_start = src->ct_data_start;
   dst->ct_enum = src->ct_enum;
   FX_COPY_PTR(src->ct_ifaces, &dst->ct_ifaces);
   dst->ct_ifaces_id = src->ct_ifaces_id;
   FX_COPY_PTR(src->ct_scope, &dst->ct_scope);
   dst->ct_loc = src->ct_loc;
}

static void _fx_make_R17C_form__cdeftyp_t(
   struct _fx_R9Ast__id_t* r_ct_name,
   struct _fx_N14C_form__ctyp_t_data_t* r_ct_typ,
   fx_str_t* r_ct_cname,
   struct _fx_R17C_form__ctprops_t* r_ct_props,
   int_ r_ct_data_start,
   struct _fx_R9Ast__id_t* r_ct_enum,
   struct _fx_LR9Ast__id_t_data_t* r_ct_ifaces,
   struct _fx_R9Ast__id_t* r_ct_ifaces_id,
   struct _fx_LN12Ast__scope_t_data_t* r_ct_scope,
   struct _fx_R10Ast__loc_t* r_ct_loc,
   struct _fx_R17C_form__cdeftyp_t* fx_result)
{
   fx_result->ct_name = *r_ct_name;
   FX_COPY_PTR(r_ct_typ, &fx_result->ct_typ);
   fx_copy_str(r_ct_cname, &fx_result->ct_cname);
   _fx_copy_R17C_form__ctprops_t(r_ct_props, &fx_result->ct_props);
   fx_result->ct_data_start = r_ct_data_start;
   fx_result->ct_enum = *r_ct_enum;
   FX_COPY_PTR(r_ct_ifaces, &fx_result->ct_ifaces);
   fx_result->ct_ifaces_id = *r_ct_ifaces_id;
   FX_COPY_PTR(r_ct_scope, &fx_result->ct_scope);
   fx_result->ct_loc = *r_ct_loc;
}

static void _fx_free_rR17C_form__cdeftyp_t(struct _fx_rR17C_form__cdeftyp_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR17C_form__cdeftyp_t, _fx_free_R17C_form__cdeftyp_t);
}

static int _fx_make_rR17C_form__cdeftyp_t(
   struct _fx_R17C_form__cdeftyp_t* arg,
   struct _fx_rR17C_form__cdeftyp_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR17C_form__cdeftyp_t, _fx_copy_R17C_form__cdeftyp_t);
}

static void _fx_free_Nt6option1N14C_form__cexp_t(struct _fx_Nt6option1N14C_form__cexp_t* dst)
{
   switch (dst->tag) {
   case 2:
      _fx_free_N14C_form__cexp_t(&dst->u.Some); break;
   default:
      ;
   }
   dst->tag = 0;
}

static void _fx_copy_Nt6option1N14C_form__cexp_t(
   struct _fx_Nt6option1N14C_form__cexp_t* src,
   struct _fx_Nt6option1N14C_form__cexp_t* dst)
{
   dst->tag = src->tag;
   switch (src->tag) {
   case 2:
      FX_COPY_PTR(src->u.Some, &dst->u.Some); break;
   default:
      dst->u = src->u;
   }
}

static void _fx_free_T2R9Ast__id_tNt6option1N14C_form__cexp_t(struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t* dst)
{
   _fx_free_Nt6option1N14C_form__cexp_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tNt6option1N14C_form__cexp_t(
   struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t* src,
   struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t* dst)
{
   dst->t0 = src->t0;
   _fx_copy_Nt6option1N14C_form__cexp_t(&src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tNt6option1N14C_form__cexp_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_Nt6option1N14C_form__cexp_t* t1,
   struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t* fx_result)
{
   fx_result->t0 = *t0;
   _fx_copy_Nt6option1N14C_form__cexp_t(t1, &fx_result->t1);
}

static void _fx_free_LT2R9Ast__id_tNt6option1N14C_form__cexp_t(
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t, _fx_free_T2R9Ast__id_tNt6option1N14C_form__cexp_t);
}

static int _fx_cons_LT2R9Ast__id_tNt6option1N14C_form__cexp_t(
   struct _fx_T2R9Ast__id_tNt6option1N14C_form__cexp_t* hd,
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t, _fx_copy_T2R9Ast__id_tNt6option1N14C_form__cexp_t);
}

static void _fx_free_R18C_form__cdefenum_t(struct _fx_R18C_form__cdefenum_t* dst)
{
   _fx_free_LT2R9Ast__id_tNt6option1N14C_form__cexp_t(&dst->cenum_members);
   fx_free_str(&dst->cenum_cname);
   fx_free_list_simple(&dst->cenum_scope);
}

static void _fx_copy_R18C_form__cdefenum_t(struct _fx_R18C_form__cdefenum_t* src, struct _fx_R18C_form__cdefenum_t* dst)
{
   dst->cenum_name = src->cenum_name;
   FX_COPY_PTR(src->cenum_members, &dst->cenum_members);
   fx_copy_str(&src->cenum_cname, &dst->cenum_cname);
   FX_COPY_PTR(src->cenum_scope, &dst->cenum_scope);
   dst->cenum_loc = src->cenum_loc;
}

static void _fx_make_R18C_form__cdefenum_t(
   struct _fx_R9Ast__id_t* r_cenum_name,
   struct _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t_data_t* r_cenum_members,
   fx_str_t* r_cenum_cname,
   struct _fx_LN12Ast__scope_t_data_t* r_cenum_scope,
   struct _fx_R10Ast__loc_t* r_cenum_loc,
   struct _fx_R18C_form__cdefenum_t* fx_result)
{
   fx_result->cenum_name = *r_cenum_name;
   FX_COPY_PTR(r_cenum_members, &fx_result->cenum_members);
   fx_copy_str(r_cenum_cname, &fx_result->cenum_cname);
   FX_COPY_PTR(r_cenum_scope, &fx_result->cenum_scope);
   fx_result->cenum_loc = *r_cenum_loc;
}

static void _fx_free_rR18C_form__cdefenum_t(struct _fx_rR18C_form__cdefenum_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR18C_form__cdefenum_t, _fx_free_R18C_form__cdefenum_t);
}

static int _fx_make_rR18C_form__cdefenum_t(
   struct _fx_R18C_form__cdefenum_t* arg,
   struct _fx_rR18C_form__cdefenum_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR18C_form__cdefenum_t, _fx_copy_R18C_form__cdefenum_t);
}

static void _fx_free_R19C_form__cdefmacro_t(struct _fx_R19C_form__cdefmacro_t* dst)
{
   fx_free_str(&dst->cm_cname);
   fx_free_list_simple(&dst->cm_args);
   _fx_free_LN15C_form__cstmt_t(&dst->cm_body);
   fx_free_list_simple(&dst->cm_scope);
}

static void _fx_copy_R19C_form__cdefmacro_t(struct _fx_R19C_form__cdefmacro_t* src, struct _fx_R19C_form__cdefmacro_t* dst)
{
   dst->cm_name = src->cm_name;
   fx_copy_str(&src->cm_cname, &dst->cm_cname);
   FX_COPY_PTR(src->cm_args, &dst->cm_args);
   FX_COPY_PTR(src->cm_body, &dst->cm_body);
   FX_COPY_PTR(src->cm_scope, &dst->cm_scope);
   dst->cm_loc = src->cm_loc;
}

static void _fx_make_R19C_form__cdefmacro_t(
   struct _fx_R9Ast__id_t* r_cm_name,
   fx_str_t* r_cm_cname,
   struct _fx_LR9Ast__id_t_data_t* r_cm_args,
   struct _fx_LN15C_form__cstmt_t_data_t* r_cm_body,
   struct _fx_LN12Ast__scope_t_data_t* r_cm_scope,
   struct _fx_R10Ast__loc_t* r_cm_loc,
   struct _fx_R19C_form__cdefmacro_t* fx_result)
{
   fx_result->cm_name = *r_cm_name;
   fx_copy_str(r_cm_cname, &fx_result->cm_cname);
   FX_COPY_PTR(r_cm_args, &fx_result->cm_args);
   FX_COPY_PTR(r_cm_body, &fx_result->cm_body);
   FX_COPY_PTR(r_cm_scope, &fx_result->cm_scope);
   fx_result->cm_loc = *r_cm_loc;
}

static void _fx_free_rR19C_form__cdefmacro_t(struct _fx_rR19C_form__cdefmacro_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR19C_form__cdefmacro_t, _fx_free_R19C_form__cdefmacro_t);
}

static int _fx_make_rR19C_form__cdefmacro_t(
   struct _fx_R19C_form__cdefmacro_t* arg,
   struct _fx_rR19C_form__cdefmacro_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR19C_form__cdefmacro_t, _fx_copy_R19C_form__cdefmacro_t);
}

static void _fx_free_R17C_form__cdefexn_t(struct _fx_R17C_form__cdefexn_t* dst)
{
   fx_free_str(&dst->cexn_cname);
   fx_free_str(&dst->cexn_base_cname);
   _fx_free_N14C_form__ctyp_t(&dst->cexn_typ);
   fx_free_list_simple(&dst->cexn_scope);
}

static void _fx_copy_R17C_form__cdefexn_t(struct _fx_R17C_form__cdefexn_t* src, struct _fx_R17C_form__cdefexn_t* dst)
{
   dst->cexn_name = src->cexn_name;
   fx_copy_str(&src->cexn_cname, &dst->cexn_cname);
   fx_copy_str(&src->cexn_base_cname, &dst->cexn_base_cname);
   FX_COPY_PTR(src->cexn_typ, &dst->cexn_typ);
   dst->cexn_std = src->cexn_std;
   dst->cexn_tag = src->cexn_tag;
   dst->cexn_data = src->cexn_data;
   dst->cexn_info = src->cexn_info;
   dst->cexn_make = src->cexn_make;
   FX_COPY_PTR(src->cexn_scope, &dst->cexn_scope);
   dst->cexn_loc = src->cexn_loc;
}

static void _fx_make_R17C_form__cdefexn_t(
   struct _fx_R9Ast__id_t* r_cexn_name,
   fx_str_t* r_cexn_cname,
   fx_str_t* r_cexn_base_cname,
   struct _fx_N14C_form__ctyp_t_data_t* r_cexn_typ,
   bool r_cexn_std,
   struct _fx_R9Ast__id_t* r_cexn_tag,
   struct _fx_R9Ast__id_t* r_cexn_data,
   struct _fx_R9Ast__id_t* r_cexn_info,
   struct _fx_R9Ast__id_t* r_cexn_make,
   struct _fx_LN12Ast__scope_t_data_t* r_cexn_scope,
   struct _fx_R10Ast__loc_t* r_cexn_loc,
   struct _fx_R17C_form__cdefexn_t* fx_result)
{
   fx_result->cexn_name = *r_cexn_name;
   fx_copy_str(r_cexn_cname, &fx_result->cexn_cname);
   fx_copy_str(r_cexn_base_cname, &fx_result->cexn_base_cname);
   FX_COPY_PTR(r_cexn_typ, &fx_result->cexn_typ);
   fx_result->cexn_std = r_cexn_std;
   fx_result->cexn_tag = *r_cexn_tag;
   fx_result->cexn_data = *r_cexn_data;
   fx_result->cexn_info = *r_cexn_info;
   fx_result->cexn_make = *r_cexn_make;
   FX_COPY_PTR(r_cexn_scope, &fx_result->cexn_scope);
   fx_result->cexn_loc = *r_cexn_loc;
}

static void _fx_free_rR17C_form__cdefexn_t(struct _fx_rR17C_form__cdefexn_t_data_t** dst)
{
   FX_FREE_REF_IMPL(_fx_rR17C_form__cdefexn_t, _fx_free_R17C_form__cdefexn_t);
}

static int _fx_make_rR17C_form__cdefexn_t(
   struct _fx_R17C_form__cdefexn_t* arg,
   struct _fx_rR17C_form__cdefexn_t_data_t** fx_result)
{
   FX_MAKE_REF_IMPL(_fx_rR17C_form__cdefexn_t, _fx_copy_R17C_form__cdefexn_t);
}

static void _fx_free_N15C_form__cinfo_t(struct _fx_N15C_form__cinfo_t* dst)
{
   switch (dst->tag) {
   case 2:
      _fx_free_R17C_form__cdefval_t(&dst->u.CVal); break;
   case 3:
      _fx_free_rR17C_form__cdeffun_t(&dst->u.CFun); break;
   case 4:
      _fx_free_rR17C_form__cdeftyp_t(&dst->u.CTyp); break;
   case 5:
      _fx_free_rR17C_form__cdefexn_t(&dst->u.CExn); break;
   case 6:
      _fx_free_rR23C_form__cdefinterface_t(&dst->u.CInterface); break;
   case 7:
      _fx_free_rR18C_form__cdefenum_t(&dst->u.CEnum); break;
   case 8:
      _fx_free_R19C_form__cdeflabel_t(&dst->u.CLabel); break;
   case 9:
      _fx_free_rR19C_form__cdefmacro_t(&dst->u.CMacro); break;
   default:
      ;
   }
   dst->tag = 0;
}

static void _fx_copy_N15C_form__cinfo_t(struct _fx_N15C_form__cinfo_t* src, struct _fx_N15C_form__cinfo_t* dst)
{
   dst->tag = src->tag;
   switch (src->tag) {
   case 2:
      _fx_copy_R17C_form__cdefval_t(&src->u.CVal, &dst->u.CVal); break;
   case 3:
      FX_COPY_PTR(src->u.CFun, &dst->u.CFun); break;
   case 4:
      FX_COPY_PTR(src->u.CTyp, &dst->u.CTyp); break;
   case 5:
      FX_COPY_PTR(src->u.CExn, &dst->u.CExn); break;
   case 6:
      FX_COPY_PTR(src->u.CInterface, &dst->u.CInterface); break;
   case 7:
      FX_COPY_PTR(src->u.CEnum, &dst->u.CEnum); break;
   case 8:
      _fx_copy_R19C_form__cdeflabel_t(&src->u.CLabel, &dst->u.CLabel); break;
   case 9:
      FX_COPY_PTR(src->u.CMacro, &dst->u.CMacro); break;
   default:
      dst->u = src->u;
   }
}

static void _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(struct _fx_T2R9Ast__id_tN14K_form__ktyp_t* dst)
{
   _fx_free_N14K_form__ktyp_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tN14K_form__ktyp_t(
   struct _fx_T2R9Ast__id_tN14K_form__ktyp_t* src,
   struct _fx_T2R9Ast__id_tN14K_form__ktyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_N14K_form__ktyp_t_data_t* t1,
   struct _fx_T2R9Ast__id_tN14K_form__ktyp_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT2R9Ast__id_tN14K_form__ktyp_t, _fx_free_T2R9Ast__id_tN14K_form__ktyp_t);
}

static int _fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(
   struct _fx_T2R9Ast__id_tN14K_form__ktyp_t* hd,
   struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT2R9Ast__id_tN14K_form__ktyp_t, _fx_copy_T2R9Ast__id_tN14K_form__ktyp_t);
}

static void _fx_free_LN14K_form__ktyp_t(struct _fx_LN14K_form__ktyp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LN14K_form__ktyp_t, _fx_free_N14K_form__ktyp_t);
}

static int _fx_cons_LN14K_form__ktyp_t(
   struct _fx_N14K_form__ktyp_t_data_t* hd,
   struct _fx_LN14K_form__ktyp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN14K_form__ktyp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN14K_form__ktyp_t, FX_COPY_PTR);
}

static void _fx_free_T2R10Ast__loc_tS(struct _fx_T2R10Ast__loc_tS* dst)
{
   fx_free_str(&dst->t1);
}

static void _fx_copy_T2R10Ast__loc_tS(struct _fx_T2R10Ast__loc_tS* src, struct _fx_T2R10Ast__loc_tS* dst)
{
   dst->t0 = src->t0;
   fx_copy_str(&src->t1, &dst->t1);
}

static void _fx_make_T2R10Ast__loc_tS(struct _fx_R10Ast__loc_t* t0, fx_str_t* t1, struct _fx_T2R10Ast__loc_tS* fx_result)
{
   fx_result->t0 = *t0;
   fx_copy_str(t1, &fx_result->t1);
}

static void _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* dst)
{
   _fx_free_LN14K_form__ktyp_t(&dst->t0);
   _fx_free_N14K_form__ktyp_t(&dst->t1);
}

static void _fx_copy_T2LN14K_form__ktyp_tN14K_form__ktyp_t(
   struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* src,
   struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2LN14K_form__ktyp_tN14K_form__ktyp_t(
   struct _fx_LN14K_form__ktyp_t_data_t* t0,
   struct _fx_N14K_form__ktyp_t_data_t* t1,
   struct _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t(struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t* dst)
{
   _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t(
   struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t* src,
   struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* t1,
   struct _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_T2iN14K_form__ktyp_t(struct _fx_T2iN14K_form__ktyp_t* dst)
{
   _fx_free_N14K_form__ktyp_t(&dst->t1);
}

static void _fx_copy_T2iN14K_form__ktyp_t(struct _fx_T2iN14K_form__ktyp_t* src, struct _fx_T2iN14K_form__ktyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2iN14K_form__ktyp_t(
   int_ t0,
   struct _fx_N14K_form__ktyp_t_data_t* t1,
   struct _fx_T2iN14K_form__ktyp_t* fx_result)
{
   fx_result->t0 = t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_N14K_form__ktyp_t(struct _fx_N14K_form__ktyp_t_data_t** dst)
{
   if (*dst && FX_DECREF((*dst)->rc) == 1) {
      switch ((*dst)->tag) {
      case 12:
         _fx_free_N14K_form__ktyp_t(&(*dst)->u.KTypRawPointer); break;
      case 13:
         _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(&(*dst)->u.KTypFun); break;
      case 14:
         _fx_free_LN14K_form__ktyp_t(&(*dst)->u.KTypTuple); break;
      case 15:
         _fx_free_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t(&(*dst)->u.KTypRecord); break;
      case 17:
         _fx_free_T2iN14K_form__ktyp_t(&(*dst)->u.KTypArray); break;
      case 18:
         _fx_free_N14K_form__ktyp_t(&(*dst)->u.KTypVector); break;
      case 19:
         _fx_free_N14K_form__ktyp_t(&(*dst)->u.KTypList); break;
      case 20:
         _fx_free_N14K_form__ktyp_t(&(*dst)->u.KTypRef); break;
      default:
         ;
      }
      fx_free(*dst);
   }
   *dst = 0;
}

static void _fx_free_Nt6option1N14C_form__ctyp_t(struct _fx_Nt6option1N14C_form__ctyp_t* dst)
{
   switch (dst->tag) {
   case 2:
      _fx_free_N14C_form__ctyp_t(&dst->u.Some); break;
   default:
      ;
   }
   dst->tag = 0;
}

static void _fx_copy_Nt6option1N14C_form__ctyp_t(
   struct _fx_Nt6option1N14C_form__ctyp_t* src,
   struct _fx_Nt6option1N14C_form__ctyp_t* dst)
{
   dst->tag = src->tag;
   switch (src->tag) {
   case 2:
      FX_COPY_PTR(src->u.Some, &dst->u.Some); break;
   default:
      dst->u = src->u;
   }
}

static void _fx_free_N14K_form__klit_t(struct _fx_N14K_form__klit_t* dst)
{
   switch (dst->tag) {
   case 5:
      fx_free_str(&dst->u.KLitString); break;
   case 8:
      _fx_free_N14K_form__ktyp_t(&dst->u.KLitNil); break;
   default:
      ;
   }
   dst->tag = 0;
}

static void _fx_copy_N14K_form__klit_t(struct _fx_N14K_form__klit_t* src, struct _fx_N14K_form__klit_t* dst)
{
   dst->tag = src->tag;
   switch (src->tag) {
   case 5:
      fx_copy_str(&src->u.KLitString, &dst->u.KLitString); break;
   case 8:
      FX_COPY_PTR(src->u.KLitNil, &dst->u.KLitNil); break;
   default:
      dst->u = src->u;
   }
}

static void _fx_free_T2SR10Ast__loc_t(struct _fx_T2SR10Ast__loc_t* dst)
{
   fx_free_str(&dst->t0);
}

static void _fx_copy_T2SR10Ast__loc_t(struct _fx_T2SR10Ast__loc_t* src, struct _fx_T2SR10Ast__loc_t* dst)
{
   fx_copy_str(&src->t0, &dst->t0);
   dst->t1 = src->t1;
}

static void _fx_make_T2SR10Ast__loc_t(fx_str_t* t0, struct _fx_R10Ast__loc_t* t1, struct _fx_T2SR10Ast__loc_t* fx_result)
{
   fx_copy_str(t0, &fx_result->t0);
   fx_result->t1 = *t1;
}

static void _fx_free_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t* dst)
{
   _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t* src,
   struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(
   struct _fx_Nt6option1R9Ast__id_t* t0,
   struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t1,
   struct _fx_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_LN14C_form__ctyp_t(struct _fx_LN14C_form__ctyp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LN14C_form__ctyp_t, _fx_free_N14C_form__ctyp_t);
}

static int _fx_cons_LN14C_form__ctyp_t(
   struct _fx_N14C_form__ctyp_t_data_t* hd,
   struct _fx_LN14C_form__ctyp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN14C_form__ctyp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN14C_form__ctyp_t, FX_COPY_PTR);
}

static void _fx_free_T2LN14C_form__ctyp_tN14C_form__ctyp_t(struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t* dst)
{
   _fx_free_LN14C_form__ctyp_t(&dst->t0);
   _fx_free_N14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T2LN14C_form__ctyp_tN14C_form__ctyp_t(
   struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t* src,
   struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2LN14C_form__ctyp_tN14C_form__ctyp_t(
   struct _fx_LN14C_form__ctyp_t_data_t* t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_T2LN14C_form__ctyp_tN14C_form__ctyp_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
}

static int _fx_cons_LN19C_form__ctyp_attr_t(
   struct _fx_N19C_form__ctyp_attr_t* hd,
   struct _fx_LN19C_form__ctyp_attr_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN19C_form__ctyp_attr_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN19C_form__ctyp_attr_t, FX_COPY_SIMPLE_BY_PTR);
}

static void _fx_free_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t* dst)
{
   fx_free_list_simple(&dst->t0);
   _fx_free_N14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(
   struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t* src,
   struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(
   struct _fx_LN19C_form__ctyp_attr_t_data_t* t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_T2iN14C_form__ctyp_t(struct _fx_T2iN14C_form__ctyp_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T2iN14C_form__ctyp_t(struct _fx_T2iN14C_form__ctyp_t* src, struct _fx_T2iN14C_form__ctyp_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2iN14C_form__ctyp_t(
   int_ t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_T2iN14C_form__ctyp_t* fx_result)
{
   fx_result->t0 = t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_N14C_form__ctyp_t(struct _fx_N14C_form__ctyp_t_data_t** dst)
{
   if (*dst && FX_DECREF((*dst)->rc) == 1) {
      switch ((*dst)->tag) {
      case 14:
         _fx_free_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&(*dst)->u.CTypStruct); break;
      case 15:
         _fx_free_T2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&(*dst)->u.CTypUnion); break;
      case 16:
         _fx_free_T2LN14C_form__ctyp_tN14C_form__ctyp_t(&(*dst)->u.CTypFunRawPtr); break;
      case 17:
         _fx_free_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(&(*dst)->u.CTypRawPtr); break;
      case 18:
         _fx_free_T2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(&(*dst)->u.CTypRawArray); break;
      case 19:
         _fx_free_T2iN14C_form__ctyp_t(&(*dst)->u.CTypArray); break;
      case 20:
         _fx_free_N14C_form__ctyp_t(&(*dst)->u.CTypVector); break;
      default:
         ;
      }
      fx_free(*dst);
   }
   *dst = 0;
}

static void _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->t0);
}

static void _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   dst->t1 = src->t1;
}

static void _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14C_form__ctyp_t_data_t* t0,
   struct _fx_R10Ast__loc_t* t1,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   fx_result->t1 = *t1;
}

static void _fx_free_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   dst->t0 = src->t0;
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t1,
   struct _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   fx_result->t0 = *t0;
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t1, &fx_result->t1);
}

static void _fx_free_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14K_form__klit_t(&dst->t0);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t1);
}

static void _fx_copy_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_copy_N14K_form__klit_t(&src->t0, &dst->t0);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t1, &dst->t1);
}

static void _fx_make_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14K_form__klit_t* t0,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t1,
   struct _fx_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   _fx_copy_N14K_form__klit_t(t0, &fx_result->t0);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t1, &fx_result->t1);
}

static void _fx_free_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t1);
   _fx_free_N14C_form__cexp_t(&dst->t2);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t3);
}

static void _fx_copy_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
   FX_COPY_PTR(src->t2, &dst->t2);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t3, &dst->t3);
}

static void _fx_make_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N17C_form__cbinary_t* t0,
   struct _fx_N14C_form__cexp_t_data_t* t1,
   struct _fx_N14C_form__cexp_t_data_t* t2,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t3,
   struct _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
   FX_COPY_PTR(t2, &fx_result->t2);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t3, &fx_result->t3);
}

static void _fx_free_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t1);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t2);
}

static void _fx_copy_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t2, &dst->t2);
}

static void _fx_make_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N16C_form__cunary_t* t0,
   struct _fx_N14C_form__cexp_t_data_t* t1,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t2,
   struct _fx_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t2, &fx_result->t2);
}

static void _fx_free_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t2);
}

static void _fx_copy_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   dst->t1 = src->t1;
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t2, &dst->t2);
}

static void _fx_make_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_R9Ast__id_t* t1,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t2,
   struct _fx_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   fx_result->t1 = *t1;
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t2, &fx_result->t2);
}

static void _fx_free_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_N14C_form__ctyp_t(&dst->t1);
}

static void _fx_copy_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   dst->t2 = src->t2;
}

static void _fx_make_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_N14C_form__ctyp_t_data_t* t1,
   struct _fx_R10Ast__loc_t* t2,
   struct _fx_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   fx_result->t2 = *t2;
}

static void _fx_free_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_N14C_form__cexp_t(&dst->t1);
   _fx_free_N14C_form__cexp_t(&dst->t2);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t3);
}

static void _fx_copy_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   FX_COPY_PTR(src->t2, &dst->t2);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t3, &dst->t3);
}

static void _fx_make_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_N14C_form__cexp_t_data_t* t1,
   struct _fx_N14C_form__cexp_t_data_t* t2,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t3,
   struct _fx_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   FX_COPY_PTR(t2, &fx_result->t2);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t3, &fx_result->t3);
}

static void _fx_free_LN14C_form__cexp_t(struct _fx_LN14C_form__cexp_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LN14C_form__cexp_t, _fx_free_N14C_form__cexp_t);
}

static int _fx_cons_LN14C_form__cexp_t(
   struct _fx_N14C_form__cexp_t_data_t* hd,
   struct _fx_LN14C_form__cexp_t_data_t* tl,
   bool addref_tl,
   struct _fx_LN14C_form__cexp_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LN14C_form__cexp_t, FX_COPY_PTR);
}

static void _fx_free_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_LN14C_form__cexp_t(&dst->t1);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t2);
}

static void _fx_copy_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t2, &dst->t2);
}

static void _fx_make_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_LN14C_form__cexp_t_data_t* t1,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t2,
   struct _fx_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t2, &fx_result->t2);
}

static void _fx_free_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   _fx_free_LN14C_form__cexp_t(&dst->t0);
   _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&dst->t1);
}

static void _fx_copy_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* src,
   struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(&src->t1, &dst->t1);
}

static void _fx_make_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
   struct _fx_LN14C_form__cexp_t_data_t* t0,
   struct _fx_T2N14C_form__ctyp_tR10Ast__loc_t* t1,
   struct _fx_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   _fx_copy_T2N14C_form__ctyp_tR10Ast__loc_t(t1, &fx_result->t1);
}

static void _fx_free_N14C_form__cexp_t(struct _fx_N14C_form__cexp_t_data_t** dst)
{
   if (*dst && FX_DECREF((*dst)->rc) == 1) {
      switch ((*dst)->tag) {
      case 1:
         _fx_free_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpIdent); break;
      case 2:
         _fx_free_T2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpLit); break;
      case 3:
         _fx_free_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(
            &(*dst)->u.CExpBinary);
         break;
      case 4:
         _fx_free_T3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpUnary); break;
      case 5:
         _fx_free_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpMem); break;
      case 6:
         _fx_free_T3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpArrow); break;
      case 7:
         _fx_free_T3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpCast); break;
      case 8:
         _fx_free_T4N14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpTernary);
         break;
      case 9:
         _fx_free_T3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpCall); break;
      case 10:
         _fx_free_T2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpInit); break;
      case 11:
         _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&(*dst)->u.CExpTyp); break;
      case 12:
         _fx_free_T2SR10Ast__loc_t(&(*dst)->u.CExpCCode); break;
      default:
         ;
      }
      fx_free(*dst);
   }
   *dst = 0;
}

static void _fx_free_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t(struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t* dst)
{
   _fx_free_Nt6option1N14C_form__cexp_t(&dst->t0);
}

static void _fx_copy_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t(
   struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t* src,
   struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t* dst)
{
   _fx_copy_Nt6option1N14C_form__cexp_t(&src->t0, &dst->t0);
   dst->t1 = src->t1;
}

static void _fx_make_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t(
   struct _fx_Nt6option1N14C_form__cexp_t* t0,
   struct _fx_R10Ast__loc_t* t1,
   struct _fx_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t* fx_result)
{
   _fx_copy_Nt6option1N14C_form__cexp_t(t0, &fx_result->t0);
   fx_result->t1 = *t1;
}

static void _fx_free_T2LN15C_form__cstmt_tR10Ast__loc_t(struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   _fx_free_LN15C_form__cstmt_t(&dst->t0);
}

static void _fx_copy_T2LN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t* src,
   struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   dst->t1 = src->t1;
}

static void _fx_make_T2LN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_LN15C_form__cstmt_t_data_t* t0,
   struct _fx_R10Ast__loc_t* t1,
   struct _fx_T2LN15C_form__cstmt_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   fx_result->t1 = *t1;
}

static void _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(struct _fx_T2R9Ast__id_tN15C_form__cstmt_t* dst)
{
   _fx_free_N15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T2R9Ast__id_tN15C_form__cstmt_t(
   struct _fx_T2R9Ast__id_tN15C_form__cstmt_t* src,
   struct _fx_T2R9Ast__id_tN15C_form__cstmt_t* dst)
{
   dst->t0 = src->t0;
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2R9Ast__id_tN15C_form__cstmt_t(
   struct _fx_R9Ast__id_t* t0,
   struct _fx_N15C_form__cstmt_t_data_t* t1,
   struct _fx_T2R9Ast__id_tN15C_form__cstmt_t* fx_result)
{
   fx_result->t0 = *t0;
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_N15C_form__cstmt_t(&dst->t1);
   _fx_free_N15C_form__cstmt_t(&dst->t2);
}

static void _fx_copy_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* src,
   struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   FX_COPY_PTR(src->t2, &dst->t2);
   dst->t3 = src->t3;
}

static void _fx_make_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_N15C_form__cstmt_t_data_t* t1,
   struct _fx_N15C_form__cstmt_t_data_t* t2,
   struct _fx_R10Ast__loc_t* t3,
   struct _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   FX_COPY_PTR(t2, &fx_result->t2);
   fx_result->t3 = *t3;
}

static void
   _fx_free_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t*
      dst)
{
   _fx_free_Nt6option1N14C_form__ctyp_t(&dst->t0);
   _fx_free_LN14C_form__cexp_t(&dst->t1);
   _fx_free_Nt6option1N14C_form__cexp_t(&dst->t2);
   _fx_free_LN14C_form__cexp_t(&dst->t3);
   _fx_free_N15C_form__cstmt_t(&dst->t4);
}

static void
   _fx_copy_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t*
      src,
   struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t*
      dst)
{
   _fx_copy_Nt6option1N14C_form__ctyp_t(&src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   _fx_copy_Nt6option1N14C_form__cexp_t(&src->t2, &dst->t2);
   FX_COPY_PTR(src->t3, &dst->t3);
   FX_COPY_PTR(src->t4, &dst->t4);
   dst->t5 = src->t5;
}

static void
   _fx_make_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_Nt6option1N14C_form__ctyp_t* t0,
   struct _fx_LN14C_form__cexp_t_data_t* t1,
   struct _fx_Nt6option1N14C_form__cexp_t* t2,
   struct _fx_LN14C_form__cexp_t_data_t* t3,
   struct _fx_N15C_form__cstmt_t_data_t* t4,
   struct _fx_R10Ast__loc_t* t5,
   struct _fx_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t*
      fx_result)
{
   _fx_copy_Nt6option1N14C_form__ctyp_t(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   _fx_copy_Nt6option1N14C_form__cexp_t(t2, &fx_result->t2);
   FX_COPY_PTR(t3, &fx_result->t3);
   FX_COPY_PTR(t4, &fx_result->t4);
   fx_result->t5 = *t5;
}

static void _fx_free_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_N15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t* src,
   struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   dst->t2 = src->t2;
}

static void _fx_make_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_N15C_form__cstmt_t_data_t* t1,
   struct _fx_R10Ast__loc_t* t2,
   struct _fx_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   fx_result->t2 = *t2;
}

static void _fx_free_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t(
   struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t* dst)
{
   _fx_free_N15C_form__cstmt_t(&dst->t0);
   _fx_free_N14C_form__cexp_t(&dst->t1);
}

static void _fx_copy_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t(
   struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t* src,
   struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   dst->t2 = src->t2;
}

static void _fx_make_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t(
   struct _fx_N15C_form__cstmt_t_data_t* t0,
   struct _fx_N14C_form__cexp_t_data_t* t1,
   struct _fx_R10Ast__loc_t* t2,
   struct _fx_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   fx_result->t2 = *t2;
}

static void _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* dst)
{
   _fx_free_LN14C_form__cexp_t(&dst->t0);
   _fx_free_LN15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* src,
   struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_LN14C_form__cexp_t_data_t* t0,
   struct _fx_LN15C_form__cstmt_t_data_t* t1,
   struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t, _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t);
}

static int _fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* hd,
   struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t, _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t);
}

static void _fx_free_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t* src,
   struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   dst->t2 = src->t2;
}

static void _fx_make_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t1,
   struct _fx_R10Ast__loc_t* t2,
   struct _fx_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   fx_result->t2 = *t2;
}

static void _fx_free_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t(
   struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* dst)
{
   _fx_free_N14C_form__ctyp_t(&dst->t0);
   _fx_free_Nt6option1N14C_form__cexp_t(&dst->t2);
}

static void _fx_copy_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t(
   struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* src,
   struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   dst->t1 = src->t1;
   _fx_copy_Nt6option1N14C_form__cexp_t(&src->t2, &dst->t2);
   dst->t3 = src->t3;
}

static void _fx_make_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t(
   struct _fx_N14C_form__ctyp_t_data_t* t0,
   struct _fx_R9Ast__id_t* t1,
   struct _fx_Nt6option1N14C_form__cexp_t* t2,
   struct _fx_R10Ast__loc_t* t3,
   struct _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   fx_result->t1 = *t1;
   _fx_copy_Nt6option1N14C_form__cexp_t(t2, &fx_result->t2);
   fx_result->t3 = *t3;
}

static void _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* dst)
{
   _fx_free_N14C_form__cexp_t(&dst->t0);
   _fx_free_LN15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T2N14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* src,
   struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
}

static void _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_N14C_form__cexp_t_data_t* t0,
   struct _fx_LN15C_form__cstmt_t_data_t* t1,
   struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
}

static void _fx_free_LT2N14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t** dst)
{
   FX_FREE_LIST_IMPL(_fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t, _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t);
}

static int _fx_cons_LT2N14C_form__cexp_tLN15C_form__cstmt_t(
   struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* hd,
   struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t* tl,
   bool addref_tl,
   struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t** fx_result)
{
   FX_MAKE_LIST_IMPL(_fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t, _fx_copy_T2N14C_form__cexp_tLN15C_form__cstmt_t);
}

static void _fx_free_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   _fx_free_LT2N14C_form__cexp_tLN15C_form__cstmt_t(&dst->t0);
   _fx_free_LN15C_form__cstmt_t(&dst->t1);
}

static void _fx_copy_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t* src,
   struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t* dst)
{
   FX_COPY_PTR(src->t0, &dst->t0);
   FX_COPY_PTR(src->t1, &dst->t1);
   dst->t2 = src->t2;
}

static void _fx_make_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t(
   struct _fx_LT2N14C_form__cexp_tLN15C_form__cstmt_t_data_t* t0,
   struct _fx_LN15C_form__cstmt_t_data_t* t1,
   struct _fx_R10Ast__loc_t* t2,
   struct _fx_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t* fx_result)
{
   FX_COPY_PTR(t0, &fx_result->t0);
   FX_COPY_PTR(t1, &fx_result->t1);
   fx_result->t2 = *t2;
}

static void _fx_free_N15C_form__cstmt_t(struct _fx_N15C_form__cstmt_t_data_t** dst)
{
   if (*dst && FX_DECREF((*dst)->rc) == 1) {
      switch ((*dst)->tag) {
      case 2:
         _fx_free_T2SR10Ast__loc_t(&(*dst)->u.CComment); break;
      case 3:
         _fx_free_N14C_form__cexp_t(&(*dst)->u.CExp); break;
      case 6:
         _fx_free_T2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&(*dst)->u.CStmtReturn); break;
      case 7:
         _fx_free_T2LN15C_form__cstmt_tR10Ast__loc_t(&(*dst)->u.CStmtBlock); break;
      case 8:
         _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&(*dst)->u.CStmtSync); break;
      case 9:
         _fx_free_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t(&(*dst)->u.CStmtIf); break;
      case 12:
         _fx_free_T6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(
            &(*dst)->u.CStmtFor);
         break;
      case 13:
         _fx_free_T3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(&(*dst)->u.CStmtWhile); break;
      case 14:
         _fx_free_T3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t(&(*dst)->u.CStmtDoWhile); break;
      case 15:
         _fx_free_T3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t(&(*dst)->u.CStmtSwitch); break;
      case 16:
         _fx_free_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t(&(*dst)->u.CDefVal); break;
      case 17:
         _fx_free_rR17C_form__cdeffun_t(&(*dst)->u.CDefFun); break;
      case 18:
         _fx_free_rR17C_form__cdeftyp_t(&(*dst)->u.CDefTyp); break;
      case 21:
         _fx_free_rR18C_form__cdefenum_t(&(*dst)->u.CDefEnum); break;
      case 22:
         _fx_free_rR23C_form__cdefinterface_t(&(*dst)->u.CDefInterface); break;
      case 23:
         _fx_free_rR19C_form__cdefmacro_t(&(*dst)->u.CMacroDef); break;
      case 25:
         _fx_free_T3LT2N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tR10Ast__loc_t(&(*dst)->u.CMacroIf); break;
      case 26:
         _fx_free_T2SR10Ast__loc_t(&(*dst)->u.CMacroInclude); break;
      case 27:
         _fx_free_T2SR10Ast__loc_t(&(*dst)->u.CMacroPragma); break;
      default:
         ;
      }
      fx_free(*dst);
   }
   *dst = 0;
}

_fx_N19C_form__ctyp_attr_t _fx_g20C_gen_std__CTypConst = { 1 };
static _fx_N14C_form__ctyp_t_data_t CTypInt_data_1 = { 1, 1 };
_fx_N14C_form__ctyp_t _fx_g18C_gen_std__CTypInt = &CTypInt_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypCInt_data_1 = { 1, 2 };
_fx_N14C_form__ctyp_t _fx_g19C_gen_std__CTypCInt = &CTypCInt_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypSize_t_data_0 = { 1, 3 };
_fx_N14C_form__ctyp_t _fx_g21C_gen_std__CTypSize_t = &CTypSize_t_data_0;
static _fx_N14C_form__ctyp_t_data_t CTypLong_data_0 = { 1, 6 };
_fx_N14C_form__ctyp_t _fx_g19C_gen_std__CTypLong = &CTypLong_data_0;
static _fx_N14C_form__ctyp_t_data_t CTypVoid_data_1 = { 1, 8 };
_fx_N14C_form__ctyp_t _fx_g19C_gen_std__CTypVoid = &CTypVoid_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypBool_data_1 = { 1, 9 };
_fx_N14C_form__ctyp_t _fx_g19C_gen_std__CTypBool = &CTypBool_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypCSmartPtr_data_0 = { 1, 11 };
_fx_N14C_form__ctyp_t _fx_g24C_gen_std__CTypCSmartPtr = &CTypCSmartPtr_data_0;
static _fx_N14C_form__ctyp_t_data_t CTypString_data_1 = { 1, 12 };
_fx_N14C_form__ctyp_t _fx_g21C_gen_std__CTypString = &CTypString_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypExn_data_1 = { 1, 13 };
_fx_N14C_form__ctyp_t _fx_g18C_gen_std__CTypExn = &CTypExn_data_1;
static _fx_N14C_form__ctyp_t_data_t CTypAny_data_1 = { 1, 23 };
_fx_N14C_form__ctyp_t _fx_g18C_gen_std__CTypAny = &CTypAny_data_1;
FX_EXTERN_C int _fx_M6C_formFM7gen_idcR9Ast__id_t2iS(
   int_ m_idx_0,
   fx_str_t* s_0,
   struct _fx_R9Ast__id_t* fx_result,
   void* fx_fv);

FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g9Ast__noid)
FX_EXTERN_C int _fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(struct _fx_R16Ast__fun_flags_t* fx_result, void* fx_fv);

FX_EXTERN_C_VAL(struct _fx_R10Ast__loc_t _fx_g10Ast__noloc)
FX_EXTERN_C void _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(
   struct _fx_rR17C_form__cdeffun_t_data_t* arg0,
   struct _fx_N15C_form__cinfo_t* fx_result);

FX_EXTERN_C int _fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(
   struct _fx_R9Ast__id_t* i_0,
   struct _fx_N15C_form__cinfo_t* entry_0,
   void* fx_fv);

FX_EXTERN_C void _fx_M6C_formFM6CMacroN15C_form__cinfo_t1rRM11cdefmacro_t(
   struct _fx_rR19C_form__cdefmacro_t_data_t* arg0,
   struct _fx_N15C_form__cinfo_t* fx_result);

FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g18C_form__std_sizeof)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g23C_form__std_CTypVoidPtr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_fx_malloc)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g19C_form__std_fx_free)
FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t* s_0, struct _fx_R9Ast__id_t* fx_result, void* fx_fv);

FX_EXTERN_C int _fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(
   struct _fx_R9Ast__id_t* arg0,
   struct _fx_N14C_form__ctyp_t_data_t** fx_result);

FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g21C_form__std_fx_free_t)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g21C_form__std_fx_copy_t)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_FX_INCREF)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_FX_DECREF)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g30C_form__std_FX_REC_VARIANT_TAG)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g48C_form__std_FX_MAKE_RECURSIVE_VARIANT_IMPL_START)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g33C_form__std_FX_MAKE_FP_IMPL_START)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_MAKE_FP_BY_FCV)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g19C_form__std_FX_CALL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_COPY_PTR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g26C_form__std_FX_COPY_SIMPLE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g33C_form__std_FX_COPY_SIMPLE_BY_PTR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g18C_form__std_FX_NOP)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g20C_form__std_FX_BREAK)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_CONTINUE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g26C_form__std_FX_CHECK_BREAK)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_CHECK_BREAK_ND)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_CHECK_CONTINUE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_FX_CHECK_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g30C_form__std_FX_CHECK_ZERO_STEP)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_LOOP_COUNT)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_CHECK_EQ_SIZE)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g28C_form__std_CTypConstVoidPtr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_copy_ptr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_STR_LENGTH)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_STR_CHKIDX)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_STR_ELEM)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_STR_ELEM_CLIP)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_STR_ELEM_ZERO)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_MAKE_STR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_FREE_STR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_COPY_STR)
FX_EXTERN_C int _fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(
   struct _fx_N14C_form__ctyp_t_data_t* t_0,
   struct _fx_N14C_form__ctyp_t_data_t** fx_result,
   void* fx_fv);

FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_free_str)
FX_EXTERN_C int _fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(
   struct _fx_N14C_form__ctyp_t_data_t* t_0,
   struct _fx_N14C_form__ctyp_t_data_t** fx_result,
   void* fx_fv);

FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_copy_str)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_fx_substr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_FX_FREE_LONG)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_FX_COPY_LONG)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_fx_free_long)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_fx_copy_long)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g25C_form__std_fx_exn_info_t)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_REG_SIMPLE_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g33C_form__std_FX_REG_SIMPLE_STD_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_FX_REG_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g34C_form__std_FX_MAKE_EXN_IMPL_START)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g20C_form__std_FX_THROW)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_FX_RETHROW)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_FAST_THROW)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_FREE_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_COPY_EXN)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_MAKE_EXN_IMPL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_free_exn)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_copy_exn)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g31C_form__std_FX_FREE_LIST_SIMPLE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g31C_form__std_fx_free_list_simple)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g26C_form__std_fx_list_length)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_FREE_LIST_IMPL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g29C_form__std_FX_MAKE_LIST_IMPL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g26C_form__std_FX_LIST_APPEND)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_FX_MOVE_LIST)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_FX_CHKIDX1)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_FX_CHKIDX)
FX_EXTERN_C_VAL(struct _fx_LR9Ast__id_t_data_t* _fx_g21C_form__std_FX_PTR_xD)
FX_EXTERN_C_VAL(struct _fx_LR9Ast__id_t_data_t* _fx_g26C_form__std_FX_PTR_xD_CLIP)
FX_EXTERN_C_VAL(struct _fx_LR9Ast__id_t_data_t* _fx_g26C_form__std_FX_PTR_xD_ZERO)
FX_EXTERN_C int _fx_F6stringS1i(int_ a, fx_str_t* fx_result, void* fx_fv);

FX_EXTERN_C_VAL(struct _fx_LR9Ast__id_t_data_t* _fx_g26C_form__std_FX_PTR_xD_WRAP)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g24C_form__std_CTypAnyArray)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_make_arr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_ARR_SIZE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_FREE_ARR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_FX_MOVE_ARR)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_free_arr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_copy_arr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_fx_copy_arr_data)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g21C_form__std_fx_subarr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g30C_form__std_FX_FREE_REF_SIMPLE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g30C_form__std_fx_free_ref_simple)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_FREE_REF_IMPL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g28C_form__std_FX_MAKE_REF_IMPL)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_FX_FREE_FP)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_FX_COPY_FP)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_fx_free_fp)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g22C_form__std_fx_copy_fp)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_fx_free_cptr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g24C_form__std_fx_copy_cptr)
FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g25C_form__std_CTypAnyVector)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_free_vec)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_copy_vec)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g23C_form__std_fx_make_vec)
FX_EXTERN_C int _fx_M6C_formFM10CTypRawPtrN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(
   struct _fx_LN19C_form__ctyp_attr_t_data_t* arg0,
   struct _fx_N14C_form__ctyp_t_data_t* arg1,
   struct _fx_N14C_form__ctyp_t_data_t** fx_result);

FX_EXTERN_C_VAL(struct _fx_N14C_form__ctyp_t_data_t* _fx_g28C_form__std_fx_ifaces_t_cptr)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_COPY_IFACE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_FX_FREE_IFACE)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_fx_copy_iface)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_fx_free_iface)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g26C_form__std_fx_query_iface)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_fx_get_object)
FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g25C_form__std_fx_make_iface)
FX_EXTERN_C int _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(
   fx_str_t* cname_0,
   struct _fx_LN14C_form__ctyp_t_data_t* argtyps_0,
   struct _fx_N14C_form__ctyp_t_data_t* rt_0,
   struct _fx_R9Ast__id_t* fx_result,
   void* fx_fv)
{
   _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_0 = 0;
   _fx_R17C_form__cdeffun_t v_1 = {0};
   _fx_rR17C_form__cdeffun_t cf_0 = 0;
   _fx_N15C_form__cinfo_t v_2 = {0};
   int fx_status = 0;
   _fx_R9Ast__id_t n_0;
   FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(1, cname_0, &n_0, 0), _fx_cleanup);
   _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lstend_0 = 0;
   _fx_LN14C_form__ctyp_t lst_0 = argtyps_0;
   for (; lst_0; lst_0 = lst_0->tl) {
      _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t tup_0 = {0};
      _fx_N14C_form__ctyp_t t_0 = lst_0->hd;
      _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&_fx_g9Ast__noid, t_0, 0, &tup_0);
      _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t node_0 = 0;
      FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&tup_0, 0, false, &node_0), _fx_catch_0);
      FX_LIST_APPEND(v_0, lstend_0, node_0);

   _fx_catch_0: ;
      _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&tup_0);
      FX_CHECK_EXN(_fx_cleanup);
   }
   _fx_R16Ast__fun_flags_t v_3;
   FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_3, 0), _fx_cleanup);
   _fx_R16Ast__fun_flags_t v_4 =
      { 0, true, v_3.fun_flag_have_keywords, v_3.fun_flag_inline, v_3.fun_flag_nothrow, v_3.fun_flag_really_nothrow,
         v_3.fun_flag_private, v_3.fun_flag_ctor, v_3.fun_flag_method_of, v_3.fun_flag_uses_fv, v_3.fun_flag_recursive,
         v_3.fun_flag_instance };
   _fx_make_R17C_form__cdeffun_t(&n_0, cname_0, v_0, rt_0, 0, &v_4, 0, &_fx_g10Ast__noloc, &v_1);
   FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_1, &cf_0), _fx_cleanup);
   _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(cf_0, &v_2);
   FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&n_0, &v_2, 0), _fx_cleanup);
   *fx_result = n_0;

_fx_cleanup: ;
   if (v_0) {
      _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_0);
   }
   _fx_free_R17C_form__cdeffun_t(&v_1);
   if (cf_0) {
      _fx_free_rR17C_form__cdeffun_t(&cf_0);
   }
   _fx_free_N15C_form__cinfo_t(&v_2);
   return fx_status;
}

FX_EXTERN_C int _fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(
   fx_str_t* cname_0,
   int_ nargs_0,
   struct _fx_R9Ast__id_t* fx_result,
   void* fx_fv)
{
   _fx_LR9Ast__id_t v_0 = 0;
   _fx_R19C_form__cdefmacro_t v_1 = {0};
   _fx_rR19C_form__cdefmacro_t cm_0 = 0;
   _fx_N15C_form__cinfo_t v_2 = {0};
   int fx_status = 0;
   _fx_R9Ast__id_t n_0;
   FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(1, cname_0, &n_0, 0), _fx_cleanup);
   _fx_LR9Ast__id_t lstend_0 = 0;
   for (int_ i_0 = 0; i_0 < nargs_0; i_0++) {
      _fx_LR9Ast__id_t node_0 = 0;
      FX_CALL(_fx_cons_LR9Ast__id_t(&_fx_g9Ast__noid, 0, false, &node_0), _fx_catch_0);
      FX_LIST_APPEND(v_0, lstend_0, node_0);

   _fx_catch_0: ;
      FX_CHECK_EXN(_fx_cleanup);
   }
   _fx_make_R19C_form__cdefmacro_t(&n_0, cname_0, v_0, 0, 0, &_fx_g10Ast__noloc, &v_1);
   FX_CALL(_fx_make_rR19C_form__cdefmacro_t(&v_1, &cm_0), _fx_cleanup);
   _fx_M6C_formFM6CMacroN15C_form__cinfo_t1rRM11cdefmacro_t(cm_0, &v_2);
   FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&n_0, &v_2, 0), _fx_cleanup);
   *fx_result = n_0;

_fx_cleanup: ;
   FX_FREE_LIST_SIMPLE(&v_0);
   _fx_free_R19C_form__cdefmacro_t(&v_1);
   if (cm_0) {
      _fx_free_rR19C_form__cdefmacro_t(&cm_0);
   }
   _fx_free_N15C_form__cinfo_t(&v_2);
   return fx_status;
}

FX_EXTERN_C int _fx_M9C_gen_stdFM14init_std_namesv0(void* fx_fv)
{
   _fx_LN14C_form__ctyp_t v_0 = 0;
   _fx_LN14C_form__ctyp_t v_1 = 0;
   _fx_LN14C_form__ctyp_t v_2 = 0;
   _fx_N14C_form__ctyp_t v_3 = 0;
   _fx_N14C_form__ctyp_t v_4 = 0;
   _fx_LN14C_form__ctyp_t v_5 = 0;
   _fx_N14C_form__ctyp_t v_6 = 0;
   _fx_LN14C_form__ctyp_t v_7 = 0;
   _fx_N14C_form__ctyp_t v_8 = 0;
   _fx_N14C_form__ctyp_t v_9 = 0;
   _fx_LN14C_form__ctyp_t v_10 = 0;
   _fx_N14C_form__ctyp_t v_11 = 0;
   _fx_N14C_form__ctyp_t v_12 = 0;
   _fx_LN14C_form__ctyp_t v_13 = 0;
   _fx_N14C_form__ctyp_t v_14 = 0;
   _fx_LN14C_form__ctyp_t v_15 = 0;
   _fx_N14C_form__ctyp_t v_16 = 0;
   _fx_N14C_form__ctyp_t v_17 = 0;
   _fx_LN14C_form__ctyp_t v_18 = 0;
   _fx_N14C_form__ctyp_t v_19 = 0;
   _fx_N14C_form__ctyp_t v_20 = 0;
   _fx_LN14C_form__ctyp_t v_21 = 0;
   _fx_N14C_form__ctyp_t v_22 = 0;
   _fx_N14C_form__ctyp_t v_23 = 0;
   _fx_LN14C_form__ctyp_t v_24 = 0;
   _fx_LN14C_form__ctyp_t v_25 = 0;
   _fx_LN14C_form__ctyp_t v_26 = 0;
   _fx_N14C_form__ctyp_t v_27 = 0;
   _fx_N14C_form__ctyp_t v_28 = 0;
   _fx_LN14C_form__ctyp_t v_29 = 0;
   _fx_N14C_form__ctyp_t v_30 = 0;
   _fx_LN14C_form__ctyp_t v_31 = 0;
   _fx_N14C_form__ctyp_t v_32 = 0;
   _fx_N14C_form__ctyp_t v_33 = 0;
   _fx_LN14C_form__ctyp_t v_34 = 0;
   _fx_N14C_form__ctyp_t v_35 = 0;
   _fx_N14C_form__ctyp_t v_36 = 0;
   _fx_LN14C_form__ctyp_t v_37 = 0;
   _fx_N14C_form__ctyp_t v_38 = 0;
   _fx_N14C_form__ctyp_t v_39 = 0;
   _fx_N14C_form__ctyp_t v_40 = 0;
   _fx_LN14C_form__ctyp_t v_41 = 0;
   _fx_LN14C_form__ctyp_t v_42 = 0;
   _fx_LN14C_form__ctyp_t v_43 = 0;
   _fx_LN14C_form__ctyp_t v_44 = 0;
   _fx_N14C_form__ctyp_t v_45 = 0;
   _fx_LN14C_form__ctyp_t v_46 = 0;
   _fx_N14C_form__ctyp_t v_47 = 0;
   _fx_N14C_form__ctyp_t v_48 = 0;
   _fx_LN14C_form__ctyp_t v_49 = 0;
   _fx_N14C_form__ctyp_t v_50 = 0;
   _fx_LN14C_form__ctyp_t v_51 = 0;
   _fx_N14C_form__ctyp_t v_52 = 0;
   _fx_N14C_form__ctyp_t v_53 = 0;
   _fx_LN14C_form__ctyp_t v_54 = 0;
   _fx_N14C_form__ctyp_t v_55 = 0;
   _fx_LN14C_form__ctyp_t v_56 = 0;
   _fx_LN19C_form__ctyp_attr_t v_57 = 0;
   _fx_N14C_form__ctyp_t v_58 = 0;
   _fx_N14C_form__ctyp_t v_59 = 0;
   _fx_LN14C_form__ctyp_t v_60 = 0;
   _fx_LN14C_form__ctyp_t v_61 = 0;
   _fx_LN14C_form__ctyp_t v_62 = 0;
   _fx_LN14C_form__ctyp_t v_63 = 0;
   _fx_LN14C_form__ctyp_t v_64 = 0;
   int fx_status = 0;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypAny, 0, true, &v_0), _fx_cleanup);
   _fx_R9Ast__id_t v_65;
   fx_str_t slit_0 = FX_MAKE_STR("sizeof");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_0, v_0, _fx_g21C_gen_std__CTypSize_t,
         &v_65, 0), _fx_cleanup);
   _fx_g18C_form__std_sizeof = v_65;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_1), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g21C_gen_std__CTypSize_t, v_1, false, &v_1), _fx_cleanup);
   _fx_R9Ast__id_t v_66;
   fx_str_t slit_1 = FX_MAKE_STR("fx_malloc");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_1, v_1, _fx_g19C_gen_std__CTypCInt,
         &v_66, 0), _fx_cleanup);
   _fx_g21C_form__std_fx_malloc = v_66;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_2), _fx_cleanup);
   _fx_R9Ast__id_t v_67;
   fx_str_t slit_2 = FX_MAKE_STR("fx_free");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_2, v_2, _fx_g19C_gen_std__CTypVoid,
         &v_67, 0), _fx_cleanup);
   _fx_g19C_form__std_fx_free = v_67;
   _fx_R9Ast__id_t v_68;
   fx_str_t slit_3 = FX_MAKE_STR("fx_free_t");
   FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_3, &v_68, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_68, &v_3), _fx_cleanup);
   _fx_free_N14C_form__ctyp_t(&_fx_g21C_form__std_fx_free_t);
   FX_COPY_PTR(v_3, &_fx_g21C_form__std_fx_free_t);
   _fx_R9Ast__id_t v_69;
   fx_str_t slit_4 = FX_MAKE_STR("fx_copy_t");
   FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_4, &v_69, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_69, &v_4), _fx_cleanup);
   _fx_free_N14C_form__ctyp_t(&_fx_g21C_form__std_fx_copy_t);
   FX_COPY_PTR(v_4, &_fx_g21C_form__std_fx_copy_t);
   _fx_R9Ast__id_t v_70;
   fx_str_t slit_5 = FX_MAKE_STR("FX_INCREF");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_5, 1, &v_70, 0), _fx_cleanup);
   _fx_g21C_form__std_FX_INCREF = v_70;
   _fx_R9Ast__id_t v_71;
   fx_str_t slit_6 = FX_MAKE_STR("FX_DECREF");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_6, 1, &v_71, 0), _fx_cleanup);
   _fx_g21C_form__std_FX_DECREF = v_71;
   _fx_R9Ast__id_t v_72;
   fx_str_t slit_7 = FX_MAKE_STR("FX_REC_VARIANT_TAG");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_7, 1, &v_72, 0), _fx_cleanup);
   _fx_g30C_form__std_FX_REC_VARIANT_TAG = v_72;
   _fx_R9Ast__id_t v_73;
   fx_str_t slit_8 = FX_MAKE_STR("FX_MAKE_RECURSIVE_VARIANT_IMPL_START");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_8, 1, &v_73, 0), _fx_cleanup);
   _fx_g48C_form__std_FX_MAKE_RECURSIVE_VARIANT_IMPL_START = v_73;
   _fx_R9Ast__id_t v_74;
   fx_str_t slit_9 = FX_MAKE_STR("FX_MAKE_FP_IMPL_START");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_9, 3, &v_74, 0), _fx_cleanup);
   _fx_g33C_form__std_FX_MAKE_FP_IMPL_START = v_74;
   _fx_R9Ast__id_t v_75;
   fx_str_t slit_10 = FX_MAKE_STR("FX_MAKE_FP_BY_FCV");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_10, 3, &v_75, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_MAKE_FP_BY_FCV = v_75;
   _fx_R9Ast__id_t v_76;
   fx_str_t slit_11 = FX_MAKE_STR("FX_CALL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_11, 2, &v_76, 0), _fx_cleanup);
   _fx_g19C_form__std_FX_CALL = v_76;
   _fx_R9Ast__id_t v_77;
   fx_str_t slit_12 = FX_MAKE_STR("FX_COPY_PTR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_12, 2, &v_77, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_COPY_PTR = v_77;
   _fx_R9Ast__id_t v_78;
   fx_str_t slit_13 = FX_MAKE_STR("FX_COPY_SIMPLE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_13, 2, &v_78, 0), _fx_cleanup);
   _fx_g26C_form__std_FX_COPY_SIMPLE = v_78;
   _fx_R9Ast__id_t v_79;
   fx_str_t slit_14 = FX_MAKE_STR("FX_COPY_SIMPLE_BY_PTR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_14, 2, &v_79, 0), _fx_cleanup);
   _fx_g33C_form__std_FX_COPY_SIMPLE_BY_PTR = v_79;
   _fx_R9Ast__id_t v_80;
   fx_str_t slit_15 = FX_MAKE_STR("FX_NOP");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_15, 1, &v_80, 0), _fx_cleanup);
   _fx_g18C_form__std_FX_NOP = v_80;
   _fx_R9Ast__id_t v_81;
   fx_str_t slit_16 = FX_MAKE_STR("FX_BREAK");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_16, 1, &v_81, 0), _fx_cleanup);
   _fx_g20C_form__std_FX_BREAK = v_81;
   _fx_R9Ast__id_t v_82;
   fx_str_t slit_17 = FX_MAKE_STR("FX_CONTINUE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_17, 1, &v_82, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_CONTINUE = v_82;
   _fx_R9Ast__id_t v_83;
   fx_str_t slit_18 = FX_MAKE_STR("FX_CHECK_BREAK");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_18, 0, &v_83, 0), _fx_cleanup);
   _fx_g26C_form__std_FX_CHECK_BREAK = v_83;
   _fx_R9Ast__id_t v_84;
   fx_str_t slit_19 = FX_MAKE_STR("FX_CHECK_BREAK_ND");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_19, 1, &v_84, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_CHECK_BREAK_ND = v_84;
   _fx_R9Ast__id_t v_85;
   fx_str_t slit_20 = FX_MAKE_STR("FX_CHECK_CONTINUE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_20, 0, &v_85, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_CHECK_CONTINUE = v_85;
   _fx_R9Ast__id_t v_86;
   fx_str_t slit_21 = FX_MAKE_STR("FX_CHECK_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_21, 1, &v_86, 0), _fx_cleanup);
   _fx_g24C_form__std_FX_CHECK_EXN = v_86;
   _fx_R9Ast__id_t v_87;
   fx_str_t slit_22 = FX_MAKE_STR("FX_CHECK_ZERO_STEP");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_22, 2, &v_87, 0), _fx_cleanup);
   _fx_g30C_form__std_FX_CHECK_ZERO_STEP = v_87;
   _fx_R9Ast__id_t v_88;
   fx_str_t slit_23 = FX_MAKE_STR("FX_LOOP_COUNT");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_23, 3, &v_88, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_LOOP_COUNT = v_88;
   _fx_R9Ast__id_t v_89;
   fx_str_t slit_24 = FX_MAKE_STR("FX_CHECK_EQ_SIZE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_24, 2, &v_89, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_CHECK_EQ_SIZE = v_89;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_5), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_5, false, &v_5), _fx_cleanup);
   _fx_R9Ast__id_t v_90;
   fx_str_t slit_25 = FX_MAKE_STR("fx_copy_ptr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_25, v_5, _fx_g19C_gen_std__CTypVoid,
         &v_90, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_copy_ptr = v_90;
   _fx_R9Ast__id_t v_91;
   fx_str_t slit_26 = FX_MAKE_STR("FX_STR_LENGTH");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_26, 1, &v_91, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_STR_LENGTH = v_91;
   _fx_R9Ast__id_t v_92;
   fx_str_t slit_27 = FX_MAKE_STR("FX_STR_CHKIDX");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_27, 3, &v_92, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_STR_CHKIDX = v_92;
   _fx_R9Ast__id_t v_93;
   fx_str_t slit_28 = FX_MAKE_STR("FX_STR_ELEM");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_28, 2, &v_93, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_STR_ELEM = v_93;
   _fx_R9Ast__id_t v_94;
   fx_str_t slit_29 = FX_MAKE_STR("FX_STR_ELEM_CLIP");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_29, 2, &v_94, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_STR_ELEM_CLIP = v_94;
   _fx_R9Ast__id_t v_95;
   fx_str_t slit_30 = FX_MAKE_STR("FX_STR_ELEM_ZERO");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_30, 2, &v_95, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_STR_ELEM_ZERO = v_95;
   _fx_R9Ast__id_t v_96;
   fx_str_t slit_31 = FX_MAKE_STR("FX_MAKE_STR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_31, 1, &v_96, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_MAKE_STR = v_96;
   _fx_R9Ast__id_t v_97;
   fx_str_t slit_32 = FX_MAKE_STR("FX_FREE_STR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_32, 1, &v_97, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_FREE_STR = v_97;
   _fx_R9Ast__id_t v_98;
   fx_str_t slit_33 = FX_MAKE_STR("FX_COPY_STR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_33, 2, &v_98, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_COPY_STR = v_98;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g21C_gen_std__CTypString, &v_6, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_6, 0, true, &v_7), _fx_cleanup);
   _fx_R9Ast__id_t v_99;
   fx_str_t slit_34 = FX_MAKE_STR("fx_free_str");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_34, v_7, _fx_g19C_gen_std__CTypVoid,
         &v_99, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_free_str = v_99;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g21C_gen_std__CTypString, &v_8, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g21C_gen_std__CTypString, &v_9, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_9, 0, true, &v_10), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_8, v_10, false, &v_10), _fx_cleanup);
   _fx_R9Ast__id_t v_100;
   fx_str_t slit_35 = FX_MAKE_STR("fx_copy_str");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_35, v_10, _fx_g19C_gen_std__CTypVoid,
         &v_100, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_copy_str = v_100;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g21C_gen_std__CTypString, &v_11, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g21C_gen_std__CTypString, &v_12, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_12, 0, true, &v_13), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g19C_gen_std__CTypCInt, v_13, false, &v_13), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_13, false, &v_13), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_13, false, &v_13), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_13, false, &v_13), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_11, v_13, false, &v_13), _fx_cleanup);
   _fx_R9Ast__id_t v_101;
   fx_str_t slit_36 = FX_MAKE_STR("fx_substr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_36, v_13, _fx_g19C_gen_std__CTypVoid,
         &v_101, 0), _fx_cleanup);
   _fx_g21C_form__std_fx_substr = v_101;
   _fx_R9Ast__id_t v_102;
   fx_str_t slit_37 = FX_MAKE_STR("FX_FREE_LONG");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_37, 1, &v_102, 0), _fx_cleanup);
   _fx_g24C_form__std_FX_FREE_LONG = v_102;
   _fx_R9Ast__id_t v_103;
   fx_str_t slit_38 = FX_MAKE_STR("FX_COPY_LONG");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_38, 2, &v_103, 0), _fx_cleanup);
   _fx_g24C_form__std_FX_COPY_LONG = v_103;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g19C_gen_std__CTypLong, &v_14, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_14, 0, true, &v_15), _fx_cleanup);
   _fx_R9Ast__id_t v_104;
   fx_str_t slit_39 = FX_MAKE_STR("fx_free_long");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_39, v_15, _fx_g19C_gen_std__CTypVoid,
         &v_104, 0), _fx_cleanup);
   _fx_g24C_form__std_fx_free_long = v_104;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g19C_gen_std__CTypLong, &v_16, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g19C_gen_std__CTypLong, &v_17, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_17, 0, true, &v_18), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_16, v_18, false, &v_18), _fx_cleanup);
   _fx_R9Ast__id_t v_105;
   fx_str_t slit_40 = FX_MAKE_STR("fx_copy_long");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_40, v_18, _fx_g19C_gen_std__CTypVoid,
         &v_105, 0), _fx_cleanup);
   _fx_g24C_form__std_fx_copy_long = v_105;
   _fx_R9Ast__id_t v_106;
   fx_str_t slit_41 = FX_MAKE_STR("fx_exn_info_t");
   FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_41, &v_106, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_106, &v_19), _fx_cleanup);
   _fx_free_N14C_form__ctyp_t(&_fx_g25C_form__std_fx_exn_info_t);
   FX_COPY_PTR(v_19, &_fx_g25C_form__std_fx_exn_info_t);
   _fx_R9Ast__id_t v_107;
   fx_str_t slit_42 = FX_MAKE_STR("FX_REG_SIMPLE_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_42, 4, &v_107, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_REG_SIMPLE_EXN = v_107;
   _fx_R9Ast__id_t v_108;
   fx_str_t slit_43 = FX_MAKE_STR("FX_REG_SIMPLE_STD_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_43, 2, &v_108, 0), _fx_cleanup);
   _fx_g33C_form__std_FX_REG_SIMPLE_STD_EXN = v_108;
   _fx_R9Ast__id_t v_109;
   fx_str_t slit_44 = FX_MAKE_STR("FX_REG_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_44, 4, &v_109, 0), _fx_cleanup);
   _fx_g22C_form__std_FX_REG_EXN = v_109;
   _fx_R9Ast__id_t v_110;
   fx_str_t slit_45 = FX_MAKE_STR("FX_MAKE_EXN_IMPL_START");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_45, 3, &v_110, 0), _fx_cleanup);
   _fx_g34C_form__std_FX_MAKE_EXN_IMPL_START = v_110;
   _fx_R9Ast__id_t v_111;
   fx_str_t slit_46 = FX_MAKE_STR("FX_THROW");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_46, 3, &v_111, 0), _fx_cleanup);
   _fx_g20C_form__std_FX_THROW = v_111;
   _fx_R9Ast__id_t v_112;
   fx_str_t slit_47 = FX_MAKE_STR("FX_RETHROW");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_47, 2, &v_112, 0), _fx_cleanup);
   _fx_g22C_form__std_FX_RETHROW = v_112;
   _fx_R9Ast__id_t v_113;
   fx_str_t slit_48 = FX_MAKE_STR("FX_FAST_THROW");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_48, 2, &v_113, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_FAST_THROW = v_113;
   _fx_R9Ast__id_t v_114;
   fx_str_t slit_49 = FX_MAKE_STR("FX_FREE_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_49, 1, &v_114, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_FREE_EXN = v_114;
   _fx_R9Ast__id_t v_115;
   fx_str_t slit_50 = FX_MAKE_STR("FX_COPY_EXN");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_50, 2, &v_115, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_COPY_EXN = v_115;
   _fx_R9Ast__id_t v_116;
   fx_str_t slit_51 = FX_MAKE_STR("FX_EXN_MAKE_IMPL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_51, 4, &v_116, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_MAKE_EXN_IMPL = v_116;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g18C_gen_std__CTypExn, &v_20, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_20, 0, true, &v_21), _fx_cleanup);
   _fx_R9Ast__id_t v_117;
   fx_str_t slit_52 = FX_MAKE_STR("fx_free_exn");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_52, v_21, _fx_g19C_gen_std__CTypVoid,
         &v_117, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_free_exn = v_117;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g18C_gen_std__CTypExn, &v_22, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g18C_gen_std__CTypExn, &v_23, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_23, 0, true, &v_24), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_22, v_24, false, &v_24), _fx_cleanup);
   _fx_R9Ast__id_t v_118;
   fx_str_t slit_53 = FX_MAKE_STR("fx_copy_exn");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_53, v_24, _fx_g19C_gen_std__CTypVoid,
         &v_118, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_copy_exn = v_118;
   _fx_R9Ast__id_t v_119;
   fx_str_t slit_54 = FX_MAKE_STR("FX_FREE_LIST_SIMPLE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_54, 1, &v_119, 0), _fx_cleanup);
   _fx_g31C_form__std_FX_FREE_LIST_SIMPLE = v_119;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_25), _fx_cleanup);
   _fx_R9Ast__id_t v_120;
   fx_str_t slit_55 = FX_MAKE_STR("fx_free_list_simple");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_55, v_25, _fx_g19C_gen_std__CTypVoid,
         &v_120, 0), _fx_cleanup);
   _fx_g31C_form__std_fx_free_list_simple = v_120;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_26), _fx_cleanup);
   _fx_R9Ast__id_t v_121;
   fx_str_t slit_56 = FX_MAKE_STR("fx_list_length");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_56, v_26, _fx_g18C_gen_std__CTypInt,
         &v_121, 0), _fx_cleanup);
   _fx_g26C_form__std_fx_list_length = v_121;
   _fx_R9Ast__id_t v_122;
   fx_str_t slit_57 = FX_MAKE_STR("FX_FREE_LIST_IMPL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_57, 2, &v_122, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_FREE_LIST_IMPL = v_122;
   _fx_R9Ast__id_t v_123;
   fx_str_t slit_58 = FX_MAKE_STR("FX_MAKE_LIST_IMPL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_58, 2, &v_123, 0), _fx_cleanup);
   _fx_g29C_form__std_FX_MAKE_LIST_IMPL = v_123;
   _fx_R9Ast__id_t v_124;
   fx_str_t slit_59 = FX_MAKE_STR("FX_LIST_APPEND");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_59, 3, &v_124, 0), _fx_cleanup);
   _fx_g26C_form__std_FX_LIST_APPEND = v_124;
   _fx_R9Ast__id_t v_125;
   fx_str_t slit_60 = FX_MAKE_STR("FX_MOVE_LIST");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_60, 2, &v_125, 0), _fx_cleanup);
   _fx_g24C_form__std_FX_MOVE_LIST = v_125;
   _fx_R9Ast__id_t v_126;
   fx_str_t slit_61 = FX_MAKE_STR("FX_CHKIDX1");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_61, 3, &v_126, 0), _fx_cleanup);
   _fx_g22C_form__std_FX_CHKIDX1 = v_126;
   _fx_R9Ast__id_t v_127;
   fx_str_t slit_62 = FX_MAKE_STR("FX_CHKIDX");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_62, 2, &v_127, 0), _fx_cleanup);
   _fx_g21C_form__std_FX_CHKIDX = v_127;
   FX_FREE_LIST_SIMPLE(&_fx_g21C_form__std_FX_PTR_xD);
   _fx_g21C_form__std_FX_PTR_xD = 0;
   FX_FREE_LIST_SIMPLE(&_fx_g26C_form__std_FX_PTR_xD_CLIP);
   _fx_g26C_form__std_FX_PTR_xD_CLIP = 0;
   FX_FREE_LIST_SIMPLE(&_fx_g26C_form__std_FX_PTR_xD_ZERO);
   _fx_g26C_form__std_FX_PTR_xD_ZERO = 0;
   int_ n_0 = FX_LOOP_COUNT(5, 0, -1);
   for (int_ i_0 = 0; i_0 < n_0; i_0++) {
      fx_str_t v_128 = {0};
      fx_str_t v_129 = {0};
      _fx_LR9Ast__id_t v_130 = 0;
      fx_str_t v_131 = {0};
      fx_str_t v_132 = {0};
      _fx_LR9Ast__id_t v_133 = 0;
      fx_str_t v_134 = {0};
      fx_str_t v_135 = {0};
      _fx_LR9Ast__id_t v_136 = 0;
      fx_str_t v_137 = {0};
      fx_str_t v_138 = {0};
      _fx_LR9Ast__id_t v_139 = 0;
      int_ i_1 = 5 + i_0 * -1;
      FX_CALL(_fx_F6stringS1i(i_1, &v_128, 0), _fx_catch_0);
      fx_str_t slit_63 = FX_MAKE_STR("FX_PTR_");
      fx_str_t slit_64 = FX_MAKE_STR("D");
      {
         const fx_str_t strs_0[] = { slit_63, v_128, slit_64 };
         FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_129), _fx_catch_0);
      }
      _fx_R9Ast__id_t v_140;
      FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&v_129, 2 + i_1, &v_140, 0), _fx_catch_0);
      FX_CALL(_fx_cons_LR9Ast__id_t(&v_140, _fx_g21C_form__std_FX_PTR_xD, true, &v_130), _fx_catch_0);
      FX_FREE_LIST_SIMPLE(&_fx_g21C_form__std_FX_PTR_xD);
      FX_COPY_PTR(v_130, &_fx_g21C_form__std_FX_PTR_xD);
      FX_CALL(_fx_F6stringS1i(i_1, &v_131, 0), _fx_catch_0);
      fx_str_t slit_65 = FX_MAKE_STR("FX_PTR_");
      fx_str_t slit_66 = FX_MAKE_STR("D_CLIP");
      {
         const fx_str_t strs_1[] = { slit_65, v_131, slit_66 };
         FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_132), _fx_catch_0);
      }
      _fx_R9Ast__id_t v_141;
      FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&v_132, 2 + i_1, &v_141, 0), _fx_catch_0);
      FX_CALL(_fx_cons_LR9Ast__id_t(&v_141, _fx_g26C_form__std_FX_PTR_xD_CLIP, true, &v_133), _fx_catch_0);
      FX_FREE_LIST_SIMPLE(&_fx_g26C_form__std_FX_PTR_xD_CLIP);
      FX_COPY_PTR(v_133, &_fx_g26C_form__std_FX_PTR_xD_CLIP);
      FX_CALL(_fx_F6stringS1i(i_1, &v_134, 0), _fx_catch_0);
      fx_str_t slit_67 = FX_MAKE_STR("FX_PTR_");
      fx_str_t slit_68 = FX_MAKE_STR("D_WRAP");
      {
         const fx_str_t strs_2[] = { slit_67, v_134, slit_68 };
         FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_135), _fx_catch_0);
      }
      _fx_R9Ast__id_t v_142;
      FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&v_135, 2 + i_1, &v_142, 0), _fx_catch_0);
      FX_CALL(_fx_cons_LR9Ast__id_t(&v_142, _fx_g26C_form__std_FX_PTR_xD_WRAP, true, &v_136), _fx_catch_0);
      FX_FREE_LIST_SIMPLE(&_fx_g26C_form__std_FX_PTR_xD_WRAP);
      FX_COPY_PTR(v_136, &_fx_g26C_form__std_FX_PTR_xD_WRAP);
      FX_CALL(_fx_F6stringS1i(i_1, &v_137, 0), _fx_catch_0);
      fx_str_t slit_69 = FX_MAKE_STR("FX_PTR_");
      fx_str_t slit_70 = FX_MAKE_STR("D_ZERO");
      {
         const fx_str_t strs_3[] = { slit_69, v_137, slit_70 };
         FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_138), _fx_catch_0);
      }
      _fx_R9Ast__id_t v_143;
      FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&v_138, 2 + i_1, &v_143, 0), _fx_catch_0);
      FX_CALL(_fx_cons_LR9Ast__id_t(&v_143, _fx_g26C_form__std_FX_PTR_xD_ZERO, true, &v_139), _fx_catch_0);
      FX_FREE_LIST_SIMPLE(&_fx_g26C_form__std_FX_PTR_xD_ZERO);
      FX_COPY_PTR(v_139, &_fx_g26C_form__std_FX_PTR_xD_ZERO);

   _fx_catch_0: ;
      FX_FREE_LIST_SIMPLE(&v_139);
      FX_FREE_STR(&v_138);
      FX_FREE_STR(&v_137);
      FX_FREE_LIST_SIMPLE(&v_136);
      FX_FREE_STR(&v_135);
      FX_FREE_STR(&v_134);
      FX_FREE_LIST_SIMPLE(&v_133);
      FX_FREE_STR(&v_132);
      FX_FREE_STR(&v_131);
      FX_FREE_LIST_SIMPLE(&v_130);
      FX_FREE_STR(&v_129);
      FX_FREE_STR(&v_128);
      FX_CHECK_EXN(_fx_cleanup);
   }
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, &v_27, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_28, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_28, 0, true, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_29, false, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_29, false, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_29, false, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g21C_gen_std__CTypSize_t, v_29, false, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_27, v_29, false, &v_29), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g19C_gen_std__CTypCInt, v_29, false, &v_29), _fx_cleanup);
   _fx_R9Ast__id_t v_144;
   fx_str_t slit_71 = FX_MAKE_STR("fx_make_arr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_71, v_29, _fx_g19C_gen_std__CTypCInt,
         &v_144, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_make_arr = v_144;
   _fx_R9Ast__id_t v_145;
   fx_str_t slit_72 = FX_MAKE_STR("FX_ARR_SIZE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_72, 2, &v_145, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_ARR_SIZE = v_145;
   _fx_R9Ast__id_t v_146;
   fx_str_t slit_73 = FX_MAKE_STR("FX_FREE_ARR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_73, 1, &v_146, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_FREE_ARR = v_146;
   _fx_R9Ast__id_t v_147;
   fx_str_t slit_74 = FX_MAKE_STR("FX_MOVE_ARR");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_74, 2, &v_147, 0), _fx_cleanup);
   _fx_g23C_form__std_FX_MOVE_ARR = v_147;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_30, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_30, 0, true, &v_31), _fx_cleanup);
   _fx_R9Ast__id_t v_148;
   fx_str_t slit_75 = FX_MAKE_STR("fx_free_arr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_75, v_31, _fx_g19C_gen_std__CTypVoid,
         &v_148, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_free_arr = v_148;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_32, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_33, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_33, 0, true, &v_34), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_32, v_34, false, &v_34), _fx_cleanup);
   _fx_R9Ast__id_t v_149;
   fx_str_t slit_76 = FX_MAKE_STR("fx_copy_arr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_76, v_34, _fx_g19C_gen_std__CTypVoid,
         &v_149, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_copy_arr = v_149;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_35, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_36, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g19C_gen_std__CTypBool, 0, true, &v_37), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_36, v_37, false, &v_37), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_35, v_37, false, &v_37), _fx_cleanup);
   _fx_R9Ast__id_t v_150;
   fx_str_t slit_77 = FX_MAKE_STR("fx_copy_arr_data");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_77, v_37, _fx_g19C_gen_std__CTypVoid,
         &v_150, 0), _fx_cleanup);
   _fx_g28C_form__std_fx_copy_arr_data = v_150;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_38, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, &v_39, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_40, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_40, 0, true, &v_41), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_39, v_41, false, &v_41), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_38, v_41, false, &v_41), _fx_cleanup);
   _fx_R9Ast__id_t v_151;
   fx_str_t slit_78 = FX_MAKE_STR("fx_subarr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_78, v_41, _fx_g19C_gen_std__CTypCInt,
         &v_151, 0), _fx_cleanup);
   _fx_g21C_form__std_fx_subarr = v_151;
   _fx_R9Ast__id_t v_152;
   fx_str_t slit_79 = FX_MAKE_STR("FX_FREE_REF_SIMPLE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_79, 1, &v_152, 0), _fx_cleanup);
   _fx_g30C_form__std_FX_FREE_REF_SIMPLE = v_152;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_42), _fx_cleanup);
   _fx_R9Ast__id_t v_153;
   fx_str_t slit_80 = FX_MAKE_STR("fx_free_ref_simple");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_80, v_42, _fx_g19C_gen_std__CTypVoid,
         &v_153, 0), _fx_cleanup);
   _fx_g30C_form__std_fx_free_ref_simple = v_153;
   _fx_R9Ast__id_t v_154;
   fx_str_t slit_81 = FX_MAKE_STR("FX_FREE_REF_IMPL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_81, 2, &v_154, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_FREE_REF_IMPL = v_154;
   _fx_R9Ast__id_t v_155;
   fx_str_t slit_82 = FX_MAKE_STR("FX_MAKE_REF_IMPL");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_82, 2, &v_155, 0), _fx_cleanup);
   _fx_g28C_form__std_FX_MAKE_REF_IMPL = v_155;
   _fx_R9Ast__id_t v_156;
   fx_str_t slit_83 = FX_MAKE_STR("FX_FREE_FP");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_83, 1, &v_156, 0), _fx_cleanup);
   _fx_g22C_form__std_FX_FREE_FP = v_156;
   _fx_R9Ast__id_t v_157;
   fx_str_t slit_84 = FX_MAKE_STR("FX_COPY_FP");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_84, 2, &v_157, 0), _fx_cleanup);
   _fx_g22C_form__std_FX_COPY_FP = v_157;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_43), _fx_cleanup);
   _fx_R9Ast__id_t v_158;
   fx_str_t slit_85 = FX_MAKE_STR("fx_free_fp");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_85, v_43, _fx_g19C_gen_std__CTypVoid,
         &v_158, 0), _fx_cleanup);
   _fx_g22C_form__std_fx_free_fp = v_158;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_44), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_44, false, &v_44), _fx_cleanup);
   _fx_R9Ast__id_t v_159;
   fx_str_t slit_86 = FX_MAKE_STR("fx_copy_fp");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_86, v_44, _fx_g19C_gen_std__CTypVoid,
         &v_159, 0), _fx_cleanup);
   _fx_g22C_form__std_fx_copy_fp = v_159;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_gen_std__CTypCSmartPtr, &v_45, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_45, 0, true, &v_46), _fx_cleanup);
   _fx_R9Ast__id_t v_160;
   fx_str_t slit_87 = FX_MAKE_STR("fx_free_cptr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_87, v_46, _fx_g19C_gen_std__CTypVoid,
         &v_160, 0), _fx_cleanup);
   _fx_g24C_form__std_fx_free_cptr = v_160;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_gen_std__CTypCSmartPtr, &v_47, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_gen_std__CTypCSmartPtr, &v_48, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_48, 0, true, &v_49), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_47, v_49, false, &v_49), _fx_cleanup);
   _fx_R9Ast__id_t v_161;
   fx_str_t slit_88 = FX_MAKE_STR("fx_copy_cptr");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_88, v_49, _fx_g19C_gen_std__CTypVoid,
         &v_161, 0), _fx_cleanup);
   _fx_g24C_form__std_fx_copy_cptr = v_161;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g25C_form__std_CTypAnyVector, &v_50, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_50, 0, true, &v_51), _fx_cleanup);
   _fx_R9Ast__id_t v_162;
   fx_str_t slit_89 = FX_MAKE_STR("fx_rrb_free");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_89, v_51, _fx_g19C_gen_std__CTypVoid,
         &v_162, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_free_vec = v_162;
   FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g25C_form__std_CTypAnyVector, &v_52, 0),
      _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g25C_form__std_CTypAnyVector, &v_53, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_53, 0, true, &v_54), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_52, v_54, false, &v_54), _fx_cleanup);
   _fx_R9Ast__id_t v_163;
   fx_str_t slit_90 = FX_MAKE_STR("fx_rrb_copy");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_90, v_54, _fx_g19C_gen_std__CTypVoid,
         &v_163, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_copy_vec = v_163;
   FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g24C_form__std_CTypAnyArray, &v_55, 0), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(v_55, 0, true, &v_56), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_56, false, &v_56), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_56, false, &v_56), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_56, false, &v_56), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g21C_gen_std__CTypSize_t, v_56, false, &v_56), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_56, false, &v_56), _fx_cleanup);
   _fx_R9Ast__id_t v_164;
   fx_str_t slit_91 = FX_MAKE_STR("fx_rrb_make");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_91, v_56, _fx_g19C_gen_std__CTypCInt,
         &v_164, 0), _fx_cleanup);
   _fx_g23C_form__std_fx_make_vec = v_164;
   FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g20C_gen_std__CTypConst, 0, true, &v_57), _fx_cleanup);
   _fx_R9Ast__id_t v_165;
   fx_str_t slit_92 = FX_MAKE_STR("fx_ifaces_t");
   FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_92, &v_165, 0), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_165, &v_58), _fx_cleanup);
   FX_CALL(_fx_M6C_formFM10CTypRawPtrN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_57, v_58, &v_59),
      _fx_cleanup);
   _fx_free_N14C_form__ctyp_t(&_fx_g28C_form__std_fx_ifaces_t_cptr);
   FX_COPY_PTR(v_59, &_fx_g28C_form__std_fx_ifaces_t_cptr);
   _fx_R9Ast__id_t v_166;
   fx_str_t slit_93 = FX_MAKE_STR("FX_COPY_IFACE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_93, 2, &v_166, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_COPY_IFACE = v_166;
   _fx_R9Ast__id_t v_167;
   fx_str_t slit_94 = FX_MAKE_STR("FX_FREE_IFACE");
   FX_CALL(_fx_M9C_gen_stdFM13gen_std_macroR9Ast__id_t2Si(&slit_94, 1, &v_167, 0), _fx_cleanup);
   _fx_g25C_form__std_FX_FREE_IFACE = v_167;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_60), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_60, false, &v_60), _fx_cleanup);
   _fx_R9Ast__id_t v_168;
   fx_str_t slit_95 = FX_MAKE_STR("fx_copy_iface");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_95, v_60, _fx_g19C_gen_std__CTypVoid,
         &v_168, 0), _fx_cleanup);
   _fx_g25C_form__std_fx_copy_iface = v_168;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_61), _fx_cleanup);
   _fx_R9Ast__id_t v_169;
   fx_str_t slit_96 = FX_MAKE_STR("fx_free_iface");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_96, v_61, _fx_g19C_gen_std__CTypVoid,
         &v_169, 0), _fx_cleanup);
   _fx_g25C_form__std_fx_free_iface = v_169;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_62), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g19C_gen_std__CTypCInt, v_62, false, &v_62), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_62, false, &v_62), _fx_cleanup);
   _fx_R9Ast__id_t v_170;
   fx_str_t slit_97 = FX_MAKE_STR("fx_query_iface");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_97, v_62, _fx_g19C_gen_std__CTypCInt,
         &v_170, 0), _fx_cleanup);
   _fx_g26C_form__std_fx_query_iface = v_170;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_63), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_63, false, &v_63), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_63, false, &v_63), _fx_cleanup);
   _fx_R9Ast__id_t v_171;
   fx_str_t slit_98 = FX_MAKE_STR("fx_get_object");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_98, v_63, _fx_g19C_gen_std__CTypCInt,
         &v_171, 0), _fx_cleanup);
   _fx_g25C_form__std_fx_get_object = v_171;
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, 0, true, &v_64), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g18C_gen_std__CTypInt, v_64, false, &v_64), _fx_cleanup);
   FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g28C_form__std_CTypConstVoidPtr, v_64, false, &v_64), _fx_cleanup);
   _fx_R9Ast__id_t v_172;
   fx_str_t slit_99 = FX_MAKE_STR("fx_make_iface");
   FX_CALL(
      _fx_M9C_gen_stdFM11gen_std_funR9Ast__id_t3SLN14C_form__ctyp_tN14C_form__ctyp_t(&slit_99, v_64, _fx_g19C_gen_std__CTypCInt,
         &v_172, 0), _fx_cleanup);
   _fx_g25C_form__std_fx_make_iface = v_172;

_fx_cleanup: ;
   if (v_0) {
      _fx_free_LN14C_form__ctyp_t(&v_0);
   }
   if (v_1) {
      _fx_free_LN14C_form__ctyp_t(&v_1);
   }
   if (v_2) {
      _fx_free_LN14C_form__ctyp_t(&v_2);
   }
   if (v_3) {
      _fx_free_N14C_form__ctyp_t(&v_3);
   }
   if (v_4) {
      _fx_free_N14C_form__ctyp_t(&v_4);
   }
   if (v_5) {
      _fx_free_LN14C_form__ctyp_t(&v_5);
   }
   if (v_6) {
      _fx_free_N14C_form__ctyp_t(&v_6);
   }
   if (v_7) {
      _fx_free_LN14C_form__ctyp_t(&v_7);
   }
   if (v_8) {
      _fx_free_N14C_form__ctyp_t(&v_8);
   }
   if (v_9) {
      _fx_free_N14C_form__ctyp_t(&v_9);
   }
   if (v_10) {
      _fx_free_LN14C_form__ctyp_t(&v_10);
   }
   if (v_11) {
      _fx_free_N14C_form__ctyp_t(&v_11);
   }
   if (v_12) {
      _fx_free_N14C_form__ctyp_t(&v_12);
   }
   if (v_13) {
      _fx_free_LN14C_form__ctyp_t(&v_13);
   }
   if (v_14) {
      _fx_free_N14C_form__ctyp_t(&v_14);
   }
   if (v_15) {
      _fx_free_LN14C_form__ctyp_t(&v_15);
   }
   if (v_16) {
      _fx_free_N14C_form__ctyp_t(&v_16);
   }
   if (v_17) {
      _fx_free_N14C_form__ctyp_t(&v_17);
   }
   if (v_18) {
      _fx_free_LN14C_form__ctyp_t(&v_18);
   }
   if (v_19) {
      _fx_free_N14C_form__ctyp_t(&v_19);
   }
   if (v_20) {
      _fx_free_N14C_form__ctyp_t(&v_20);
   }
   if (v_21) {
      _fx_free_LN14C_form__ctyp_t(&v_21);
   }
   if (v_22) {
      _fx_free_N14C_form__ctyp_t(&v_22);
   }
   if (v_23) {
      _fx_free_N14C_form__ctyp_t(&v_23);
   }
   if (v_24) {
      _fx_free_LN14C_form__ctyp_t(&v_24);
   }
   if (v_25) {
      _fx_free_LN14C_form__ctyp_t(&v_25);
   }
   if (v_26) {
      _fx_free_LN14C_form__ctyp_t(&v_26);
   }
   if (v_27) {
      _fx_free_N14C_form__ctyp_t(&v_27);
   }
   if (v_28) {
      _fx_free_N14C_form__ctyp_t(&v_28);
   }
   if (v_29) {
      _fx_free_LN14C_form__ctyp_t(&v_29);
   }
   if (v_30) {
      _fx_free_N14C_form__ctyp_t(&v_30);
   }
   if (v_31) {
      _fx_free_LN14C_form__ctyp_t(&v_31);
   }
   if (v_32) {
      _fx_free_N14C_form__ctyp_t(&v_32);
   }
   if (v_33) {
      _fx_free_N14C_form__ctyp_t(&v_33);
   }
   if (v_34) {
      _fx_free_LN14C_form__ctyp_t(&v_34);
   }
   if (v_35) {
      _fx_free_N14C_form__ctyp_t(&v_35);
   }
   if (v_36) {
      _fx_free_N14C_form__ctyp_t(&v_36);
   }
   if (v_37) {
      _fx_free_LN14C_form__ctyp_t(&v_37);
   }
   if (v_38) {
      _fx_free_N14C_form__ctyp_t(&v_38);
   }
   if (v_39) {
      _fx_free_N14C_form__ctyp_t(&v_39);
   }
   if (v_40) {
      _fx_free_N14C_form__ctyp_t(&v_40);
   }
   if (v_41) {
      _fx_free_LN14C_form__ctyp_t(&v_41);
   }
   if (v_42) {
      _fx_free_LN14C_form__ctyp_t(&v_42);
   }
   if (v_43) {
      _fx_free_LN14C_form__ctyp_t(&v_43);
   }
   if (v_44) {
      _fx_free_LN14C_form__ctyp_t(&v_44);
   }
   if (v_45) {
      _fx_free_N14C_form__ctyp_t(&v_45);
   }
   if (v_46) {
      _fx_free_LN14C_form__ctyp_t(&v_46);
   }
   if (v_47) {
      _fx_free_N14C_form__ctyp_t(&v_47);
   }
   if (v_48) {
      _fx_free_N14C_form__ctyp_t(&v_48);
   }
   if (v_49) {
      _fx_free_LN14C_form__ctyp_t(&v_49);
   }
   if (v_50) {
      _fx_free_N14C_form__ctyp_t(&v_50);
   }
   if (v_51) {
      _fx_free_LN14C_form__ctyp_t(&v_51);
   }
   if (v_52) {
      _fx_free_N14C_form__ctyp_t(&v_52);
   }
   if (v_53) {
      _fx_free_N14C_form__ctyp_t(&v_53);
   }
   if (v_54) {
      _fx_free_LN14C_form__ctyp_t(&v_54);
   }
   if (v_55) {
      _fx_free_N14C_form__ctyp_t(&v_55);
   }
   if (v_56) {
      _fx_free_LN14C_form__ctyp_t(&v_56);
   }
   FX_FREE_LIST_SIMPLE(&v_57);
   if (v_58) {
      _fx_free_N14C_form__ctyp_t(&v_58);
   }
   if (v_59) {
      _fx_free_N14C_form__ctyp_t(&v_59);
   }
   if (v_60) {
      _fx_free_LN14C_form__ctyp_t(&v_60);
   }
   if (v_61) {
      _fx_free_LN14C_form__ctyp_t(&v_61);
   }
   if (v_62) {
      _fx_free_LN14C_form__ctyp_t(&v_62);
   }
   if (v_63) {
      _fx_free_LN14C_form__ctyp_t(&v_63);
   }
   if (v_64) {
      _fx_free_LN14C_form__ctyp_t(&v_64);
   }
   return fx_status;
}

FX_EXTERN_C int fx_init_C_gen_std(void)
{
   int fx_status = 0;
   return fx_status;
}

FX_EXTERN_C void fx_deinit_C_gen_std(void)
{

}

